rpm包简单打包可执行文件,让你的程序更合理方便的被安装管理

首先安装打包软件
1.yum install rpmbuild -y
2.yum install rpmdevtools -y
生成打包路径
1.使用rpmdev-setuptree ,会自动在用户家目录生成一个rpmbuild的文件夹,作为工作路径
2.cd rpmbuild/SPECS路径,创建my.spec文件,仅仅需要以下内容
################my.spec##############
Name: shepherd
Version: 1.0
Release: 1
Summary: luckykris
License: luckykris@yeah.net
Group: github
%description
%prep #打包前所要做的操作
%files #你想打包的可执行文件,未来安装到的路径
%defattr(0755,root,root,-) #你想打包的可执行文件的默认权限
/usr/local/bin/shepherd #你想打包的可执行文件,未来安装到的路径
%doc
%require #包依赖 ,值得一提的是,你打包的所有文件中如果有可执行的二进制文件,安装的默认会用 ldd命令去查看 ,是否有not found的动态链接库,如果有的话,会报出依赖关系缺失异常,阻止你安装rpm包
%pre #安装包前所需要做的操作
%post #安装包后所要做的操作
%changelog
###################################
3.执行打包命令rpmbuild -ba shepherd.spec
首次执行之后会报错:
[root@dev-ansible-server SPECS]# rpmbuild -ba shepherd.spec
Processing files: shepherd-1.0-2.x86_64
error: File not found: /root/rpmbuild/BUILDROOT/shepherd-1.0-2.x86_64/usr/local/bin/shepherd
RPM build errors:
File not found: /root/rpmbuild/BUILDROOT/shepherd-1.0-2.x86_64/usr/local/bin/shepherd
看到没有找到路径的报错,然后你需要建立这个路径:
mkdir -p /root/rpmbuild/BUILDROOT/shepherd-1.0-2.x86_64/usr/local/bin/
4.报错之后,你需要做的就是把你编译好的自己的程序的路径,复制到步骤3中报错的路径中。
也就是放在这个路径File not found: /root/rpmbuild/BUILDROOT/shepherd-1.0-2.x86_64/usr/local/bin/shepherd
5.放到规定路径后再次执行,就会成功打成rpm包。rpm包会放在rpmbuild/RPMS/x86_64这个路径下。

推荐阅读更多精彩内容