一 建立源碼ui
目錄結構:spa
main-0.1code
├── main.c
└── Makefileblog
源碼內容:ip
1 // main.c 2 #include <stdio.h> 3 4 int main () 5 { 6 printf("Test Main\n"); 7 return 0; 8 }
1 # Makefile 2 OBJS = main.o 3 main: ${OBJS} 4 gcc -o main ${OBJS} 5 clean: 6 rm -f main ${OBJS} 7 install: 8 install -m 755 main $(RPM_INSTALL_ROOT)/usr/local/bin/main
打包壓縮ci
tar czf main-0.1.tar.gz main-0.1源碼
二 打包io
【1】建立~/rpmbuild及其子目錄編譯
mkdir ~/rpmbuild
cd ~/rpmbuild
mkdir -p BUILD SPECS RPMS SOURCES SRPMSclass
【2】將main-0.1.tar.gz拷貝到SOURCES目錄
【3】在SPECS目錄下建立spec文件 main-0.1.spec
文件內容以下:
1 Summary: test rpm 2 Name: main 3 Version: 0.1 4 Release: 1 5 License: GPL 6 Group: NONE 7 Source: main-0.1.tar.gz 8 Url: http://you.guess 9 Packager: Lin 10 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root 11 12 %description 13 exercise: how to use rpm and rpmbuild 14 15 %prep 16 %setup -q 17 18 %build 19 make 20 21 %install 22 rm -rf %{buildroot} 23 mkdir -p %{buildroot}/usr/local/bin 24 make install RPM_INSTALL_ROOT=%{buildroot} 25 26 %files 27 /usr/local/bin/main 28 29 %changelog 30 * Tue Jul 30 2019 Lin <Lin@123.com> 0.1 31 - build the program
【4】運行: rpmbuild -ba main-0.1.spec
可見Log,說明打包成功。
最終的rpmbuild目錄內容結構以下:
三 安裝與卸載
上面的過程產生了 src.rpm和rpm。
先用 main-0.1-1.x86_64.rpm 包來練習安裝、查詢和卸載
安裝:sudo rpm -ivh main-0.1-1.x86_64.rpm
執行命令: main
查看命令位置: type main(也能夠用命令:rpm -ql main)
查看main的詳細信息:rpm -qi main
卸載:sudo rpm -e main
而後用 main-0.1-1.src.rpm 練習經過src.rpm文件編譯生成本身的安裝包:
rpmbuild --rebuild main-0.1-1.src.rpm
這一步能夠在其餘支持rpmbuild命令的平臺上完成。
【參考】
《鳥哥的Linxu私房菜》第23章