脚本宝典收集整理的这篇文章主要介绍了rpm构建流程学习总结,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
学习链接: b站马哥: https://www.bilibili.COM/video/BV1ai4y1N7gp redhat: https://access.redhat.com/documentation/zh-cn/red_hat_Enterprise_linux/8/htML/packaging_and_distributing_Software/index
BuildRequires 制作软件包需要的依赖 gcc binutils Requires 安装软件包需要的依赖
release 指第几次制作,跟version无关
制作过程: rpm build:首先解压SOURCE里的文件到BUILD,在BUILD里生成一个子目录,编译过程会跳到子目录里去执行./config/make,编译之后安装,不是安装到系统上,而是安装到一个临时目录中去,install安装到buildroot目录下,把buildroot目录当作操作系统目录。下一步:file section ,rpm 命令根据file section中列出的文件,把BUILD目录中的那些file文件压缩成rpm包。打包完成后执行clean过程,清除BUILDROOT和BUILD目录。 BUILDROOT里除了debug的文件,其他的都必须做进rpm包
%prep 解压到BUILD,cd进去,设置一些环境变量,设置一些宏,为编译做准备 %setup 像是prep的扩展 -q 静默模式 不显示过程
%build ./configure --etcdir="%{_Sysconfdir}" --mandir="%{_mandir}" --il8n="0" --scrip="0" %{_make} %{?_smp_mflags} ==>对称多处理器上,可以加快编译过程
%install %{__rm} -rf %{buildroot} 删除之前安装的,没有也不影响 %{__make} install DESTDIR="%{buildroot}" %find_lang %{name} 在buildroot目录下会生成一堆 6。 %clean %{__rm} -rf %{buildroot} 清理此前制作过程中的buildroot
%file %defattr(-,root,root,-) 权限 %doc 文档 %config %{_sysconfigdir}/Axelrc 配置文件 /usr/local/bin/axel %dir 目录 %conf(noraplace) 指的是新的配置文件是否替换,如果原来的旧的配置没有修改,会替换,修改了,不会替换,会把原来的改成比如xxx.conf.orig,再去生成新的。
rpmbuild --showrc|grep _tmppath
rpmdev-setuptree命令相当于 mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
#家目录 vi ~/.rpmmacros
%_topdir %(echo `pwd`)/rpmbuild
%{?_smp_flag} ?:有的话就用,没有的话就不用
-ba all ==> bb + bs
-bb 表示制作二进制格式的rpm包
-bc %build
-bp %prep
-bi %install
-bl check 有多余的文件或者文件没有被放到rpm包里都会error。==> Check the listing of filee for the RPM and generate errors if the buildroot is missing any of the file to be installed.
-bs 表示制作源码格式的rpm包 src.rpm
以上是脚本宝典为你收集整理的rpm构建流程学习总结全部内容,希望文章能够帮你解决rpm构建流程学习总结所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。