【实验】Linux源码打包——练习使用rpmbuild和rpm

一 创建源码

目录结构:

 main-0.1

    ├── main.c
    └── Makefile

源码内容:

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

 

打包压缩

tar czf main-0.1.tar.gz main-0.1

 

二 打包

【1】创建~/rpmbuild及其子目录

mkdir ~/rpmbuild
cd ~/rpmbuild
mkdir -p BUILD SPECS RPMS SOURCES SRPMS

【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章

posted @ 2019-07-30 22:45  小明583  阅读(648)  评论(0)    收藏  举报