化鲲为鹏,我有话说【最佳实践】spec语法差异导致的编译错误(持续更新)

举报
敏敏君主 发表于 2019/11/29 15:36:57 2019/11/29
【摘要】 centos与fedora在spec语法方面的差异

化鲲为鹏,我有话说

【背景介绍】

  我们在做华为云鲲鹏云服务移植的时候,如果使用源码编译成二进制,安装,如果部署的环境少,可以使用该方式。但是,一旦我们需要部署集群环境,上千台环境,这样使用二进制方式部署就很困难。这种集群场景我们推荐大家使用rpm方式管理包,单独提供一台yum源服务器,将你适配编译好的rpm(鲲鹏服务器上)放在yum源服务器上,其他需要部署业务的服务器只要可以访问yum源服务器即可完成自动安装部署。


推荐几个大家可以下载rpm源码的地址:

第一个、opensuse官网

第二个、fedora官网


但是因为centos与suse、fedora存在微小差异,spec文件语法兼容性需要微调。下面就是我整理的差异点,会持续更新。


1. centos与fedora在spec语法方面的差异


一、%ldconfig_scriptlets

%ldconfig_scriptlets是Fedora独有的,在centos平台编译rpm包时,会因为不识别%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

弱依赖,建议删除后编译

2. 参考信息

https://rpm.org/user_doc/dependencies.html


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。