rpm包编译过程中,spec文件语法差异导致的编译错误汇总

化鲲为鹏,我有话说

因为我们大部分的src.rpm包都是从fedora官网下载的(fedora与centos兼容性更好),而fedora的spec语法与centos有略微的差异。在编译rpm过程中存在因为语法差异导致的失败。

故将当前遇到的差异及解决方案做了整理。

一、%ldconfig_scriptlets

%ldconfig_scriptlets是Fedora特有的,如果从Fedora官网取的rpm源码在centos平台编译,会因为不识别%ldconfig_scriptlets而报错。

修改方法如下:

比如:%ldconfig_scriptlets

替换为:%post -p /sbin/ldconfig

                %postun -p /sbin/ldconfig

比如:%ldconfig_scriptlets gnutls

替换为:%post gnutls -p /sbin/ldconfig

                %postun gnutls -p /sbin/ldconfig

二、Suggests

提示级别,建议删除后编译

三、Enhances

提示级别,建议删除后编译

四、Recommends

弱依赖,建议删除后编译

五、Supplements

弱依赖,建议删除后编译