RPM从SRPM重新编包

目前仅用到从SRPM中编译所需要架构的RPM包,仅记录此方案。

在工作中对新架构进行适配时,发现缺少相关的RPM包,需要手动编译,相对快捷的办法是从SRPM包重新编译。

RPM 文件有两类:源 RPM(SRPM)和二进制 RPM。

SRPM 中的有效负载是 SPEC 文件(描述如何构建二进制 RPM)。

SPEC 文件是 rpmbuild 程序用于实际构建 RPM 的方法。

安装相关软件

yum install rpmbuild rpmdevtools -y

初始化目录

rpmdev-setuptree

目录结构

目录作用
BUILD构建 RPM 包的时,会在此目录下产生各种%buildroot 目录。如果构建失败,可以据此查看目录日志,进行问题诊断
RPMS构建成功二进制 RPM 的存放目录。存放在 architecture 的子目录中。例如:noarch 和 x86_64
SOURCES存放源代码和补丁的目录。构建 RPM 包时,rpmbuild 命令将会从这个目录查找源代码
SPECSSPEC文件存放目录
SRPMS存放 SRPM 的目录

查询RPM包

在以下网站可以查到绝大部分的包,能够溯源到其相关的源码包。

https://koji.fedoraproject.org/koji/search

http://rpmfind.net/linux/RPM/

http://ftp.redhat.com/pub/redhat/linux/enterprise/7Server/en/RHCEPH/SRPMS/

http://ftp.jaist.ac.jp/pub/Linux/Fedora/development/rawhide/Everything/source/tree/Packages/g/

下载SRPM包到架构的机子上,安装

rpm -ivh ***.src.rpm

执行完成后,会在 SPEC 目录中生成这个包的 SPEC 文件。

构建二进制RPM包

在构建二进制 RPM 包时,习惯采用从源码构建 SRPM,然后再构建二进制 RPM 的方法。

rpmbuild -ba xxx.spec

根据报错提示,安装所需求的软件或者处理其他发生的问题,完成编包。

参考:

  1. https://developer.ibm.com/zh/technologies/linux/articles/l-lo-rpm-build-package/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值