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这个路羡帆径下。
花费了将近一周的时间,才把rpm打包弄好.不能说已经了然于胸,但至少踩过了很多坑.接下来就顺顺在打包过程中的二三事.刚开始接到任务的时候,一脸懵逼.
作为专业的 JAVA Web 程序员,确定要让我干这么跨界的事情吗?之前自己虽然也安装过其他的rpm包,但我保证,我只是看说明书,跟着一路弄下来的.并且之后对它可是有多远躲多远的.不过考虑到自己的title,我知道那不应该是我关心的事情.那么问题来了,什么是rpm呢?
看到了rpm是衫迅什么,我们就来了解一下RPM相关的命令
本来准备直接 rpm -help 让大家看看相关参数的,但是考虑到内容太谨游多,感兴趣的 自行点击 .这里放几个常用的祥塌销命令.
至此,基本的rpm基础已经了解到了.那么关键的问题来了,如何制作RPM
把制作RPM,道上传闻有多种方式,我自己测过的有两种
注意:无论上述那种都需要 setup.py 及 setup.cfg 文件,描述相关的软件信息.
我自己使用的是第二种rpmbuild,
至此就可以欢快的进行打包了.执行
以上命令运行成功后会在当前用户目录下生成rpmbuild目录,该目录会包含以下子目录
--BUILD #编译之前,如解压包后存放的路径 --BUILDROOT #编译后存放的路径 --RPMS #打包完成后rpm包存放的路径 --SOURCES #源包所放置的路径 --SPECS #spec文档放置的路径 --SPRMS #源码rpm包放置的路径
安装成功后,即可直接执行相关命令了.
rpmbuild
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)