支持信创国产化(06) - - 制作Linux-RPM安装包
本文的测试环境:
操作系统:中标麒麟
CPU:x64、龙芯3A-4000、飞腾FT-2000
(中标麒麟要求使用RPM格式的安装包)
1. 先将架构一样的Deb转为RPM包
yum install alien ( 安装alien转换工具 )
alien -r xxx.deb ( xxx 为deb安装包名称 )
执行完后会生成一个xxx.rpm安装包,但这个安装包不能直接使用,还需要修改RPM包里面的内容
注:Deb安装包制作流程请参考另外一篇博客《制作linux-Deb安装包》
2. 安装rpmrebuild 和安装rpmbuild
rpmrebuild下载链接: https://sourceforge.net/projects/rpmrebuild/files/rpmrebuild/2.12-1/
rpmbuild直接用yum安装 :yum install rpmbuild
3.创建目录解压rpmrebuild文件到/data/rpmbuild中
mkdir -p /data
mkdir -p /data/rpmbuild
mkdir -p /data/rpmbuild/BUILDROOT
mkdir -p /data/rpmbuild/SPECS
cd /data/rpmbuild
echo "%_topdir /data/rpmbuild" >> ~/.rpmmacros
tar -zxvf rpmrebuild-2.14.tar.gz
4.安装准备重新打包的rpm
rpm -i --force --nodeps xxx.rpm
5.反编译提取SPEC文件
查看rpm安装名称
rpm -qa|grep xxx
./rpmrebuild.sh -s SPECS/abc.spec ccc ( ccc为查看的rpm安装名称 )
6.替换或修改rpm包中的文件(将转换的rpm安装包放到/data/rpmbuild/BUILDROOT目录)
解压原版RPM包
rpm2cpio ccc.rpm |cpio -idv
解压后会生成usr文件夹,需要再当前目录新建一个文件夹(名称为rpm包的名称ccc),然后将usr文件夹移动到新建文件夹中
接下来可根据需求替换修改解压后的文件后
7.修改abc.spec文件
vi /data/rpmbuild/SPECS/abc.spec
将文件里的权限全部设置为0755,把所有Provides属性删除掉
将依赖属性Requires 中不属于OrayTalk的文件全部删除掉
将%dir %attr(0755, root, root) "/"这一行删除
8.编译RPM包
rpmbuild -ba /data/rpmbuild/SPECS/abc.spec
生成的RPM位置在/data/rpmbuild/RPMS/
更多RPM打包原理可参考:https://www.ibm.com/developerworks/cn/linux/l-rpm/
相关文章连接:《支持信创国产化》系列文章目录