在CentOS 6.3 64bit上如何从源码生成rpm包?

具体例子参见《鸟哥私房菜》23.3.5中的例子,非常详细和经典!

下面是在CentOS 6.6 64bit上面的实操记录
首先查询本机是否有安装rpmbuild命令?
whereis rpmbuild
在安装完成后,直接运行
man rpmbuild
来查询即可
显示当前配置情况
rpmbuild --showrc

如果事先没有安装rpmbuild,以root用户安装rpmbuild命令
yum -y install rpm-build
系统默认的rpm构建目录是/root/rpmbuild,但是起初系统中并没有这样的目录结构,我们可以在对一个.spec文件直接执行下面的命令来自动生成这个结构

rpmbuild -ba ats.spec

在CentOS 6.3 64bit上如何从源码生成rpm包?_第1张图片

编译前的目录结构是这样的

在CentOS 6.3 64bit上如何从源码生成rpm包?_第2张图片

从鸟哥网址下载如下源码包
wget ' http://linux.vbird.org/linux_basic/0520source/main.tgz'
tar zxvf main.tgz
编写Makefile文件,略作修改
另外得到.o文件:
gcc -c main.c
gcc -c hehe.c
gcc -c sin_value.c
gcc -c cos_value.c
再次打包
tar -zcvf main-0.1.tar.gz main-0.1
将源码包复制到rpmbuild默认源码目录下面
cp main.0.1.tar.gz /root/rpmbuild/SOURCES
在/root/rpmbuild/SPECS下面编写针对该项目的SPEC文件,
vim main.spec
保存后,在当前目录下面执行
rpmbuild -ba main.spec
在CentOS 6.3 64bit上如何从源码生成rpm包?_第3张图片

在CentOS 6.3 64bit上如何从源码生成rpm包?_第4张图片

(从中易见,编译过程中会生成以临时目录RPM_INSTALL_ROOT,写入rpm后会删除它,所以需要在Makefile的install中添加安装文件的这个前缀)
成功编译后的结果是
在CentOS 6.3 64bit上如何从源码生成rpm包?_第5张图片
下面开始测试打包的结果
安装rpm包

测试rpm包

在CentOS 6.3 64bit上如何从源码生成rpm包?_第6张图片

实际查询rpm包

在CentOS 6.3 64bit上如何从源码生成rpm包?_第7张图片

你可能感兴趣的:(Linux)