【实验】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章

相关文章
相关标签/搜索