rpmbuild 交叉构建rpm安装包的方式(在x86_64系统生成,在aarch64系统运行)

rpm是linux下较常见的包管理器,除了非常多的官方软件厂商选择使用其作为其产品的安装包管理器外,很多学习爱好者也使用其来安装自己的软件包。

通过rpmbuild来生成rpm包。其具体细节不在赘述。

当需要在ARM板上构建rpm安装包时,往往因为ARM板资源的限制,在其上构建不是一个效率较高的方式。我们自然而然的想到了类似交叉编译的方式。rpmbuild能否实现交叉构建?答案是肯定的。

当我在x86_64系统上期望构建aarch64架构的安装包时,只需指定目标类型即可:

rpmbuild --target=aarch64 --buildroot=/your/rpmbuild/tree/path SPECFILE

在编译时,rpmbuild将会对库文件、可执行文件进行strip。建议通过脚本压缩目标文件后再rpmbuild。

当您在aarch64系统通过rpm命令安装您的安装包时,或许会碰到dependencies相关的报错:

rpm:  RPM should not be used directly install RPM packages, use Alien instead!
rpm: However assuming you know what you are doing...
error: Failed dependencies:
/bin/sh is needed by xxxxx.rpm

提示您需要/bin/sh。仔细看rpm的输出信息,可以通过alien来安装您的安装包:

alien -i yourrpm.rpm --scripts

当然也可以指定疏略依赖项来安装:

 rpm -i --nodeps your.rpm。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值