我们在Linux上利用 rpmbuild 构建 rpm 安装包时,通过命令rpm --showrc 查看实现代码,另外直接通过 rpm --eval "%{macro}"来查看具体对应路径。
比如我们要查看%{_bindir}的路径,就可以使用命令rpm --eval "%{ _bindir}"来查看,另外,所有的宏都可以在/usr/lib/rpm/macros里找到。
# yum -y install rpm-build
# yum info rpm-build
# vim /usr/lib/rpm/macros
这是一个全局RPM配置文件, 这里所做的所有更改都将 在rpm包升级后会丢失。
你应该将系统配置添加到/etc/rpm/macros,将用户配置添加到〜/.rpmmacros。
宏对应路径一览表:
Macros mimicking autoconf variables
注意:在Fedora 10(和EPEL)之前的版本,%{_ initddir}不存在, 相反地你应该使用已弃用的%{_ initrddir}宏。
RPM directory macros
Some other macros
查看具体某个宏的值
# rpm --help
# rpm --eval "%{_builddir}"
# rpm -E "%{_builddir}"
RPM SPEC中的 %{?dist} 怎么理解?
# cat /usr/share/doc/rpm-4.11.3/conditionalbuilds
源代码通常在启用或禁用可选功能的情况下构建,使用rpm打包源代码时,可以使用各种功能选择,添加到spec文件,并将生成一个包
使用该功能集编译的二进制文件,这种机制很好对于具有小功能集的包,但不能很好地工作,对于大型,复杂的软件包,如Linux内核和/或
Pine邮件具有大量的功能,作为给定功能集可能不会为每个人“工作”。
参考
Fedora Project Wiki Packaging:RPMMacros
https://fedoraproject.org/wiki/Packaging:RPMMacros?rd=Packaging/RPMMacros#Valid_RPM_Macros
spec文件和spec宏
http://blog.chinaunix.net/uid-12078489-id-2960249.html
Dist Tag Guidelines
https://docs.fedoraproject.org/en-US/packaging-guidelines/DistTag
https://fedoraproject.org/wiki/Packaging:DistTag