【實驗】Linux源碼打包——練習使用rpmbuild和rpm

一 建立源碼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章

相關文章
相關標籤/搜索