化鲲为鹏,我有话说【最佳实践】spec语法差异导致的编译错误(持续更新)
【摘要】 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. 参考信息
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)