CentOS从源代码RPM生成二进制RPM

  • 原创
  • Madman
  • /
  • 2018-05-11 09:28
  • /
  • 0
  • 281 次阅读

CentOS从源代码RPM生成二进制RPM-min.png

Synopsis: 有时候你在网上只找到应用程序的源代码RPM(SOURCE RPM,即SRPM),它的一般命令格式为xxx.src.rpm,首先需要从它生成可安装的二进制RPM,需要用到rpmbuild命令。需要注意的是,不论是用 RPM 组件管理系统、抑或是原始的 tar 压缩档,以 root 身份来创建软件可能会导致灾难,所以强烈建议使用非root用户执行本文的步骤

1. 准备环境

1.1 安装相关软件包

检查是否安装了rpm-build软件包:

$ rpmbuild --version
或者:
$ rpmbuild --showrc

如果没有请先安装:

$ sudo yum -y install rpm-build redhat-rpm-config

如果你的系统是最小化安装,可能你还需要安装kernel-develmakegccopensslopenssl-devel

$ sudo yum -y install kernel-devel make gcc openssl openssl-devel

1.2 创建相关目录

$ cp -r ~/rpmbuild ~/rpmbuild-$(date +%Y%m%d).bak  # 如果存在此目录,先备份
$ rm -rf ~/rpmbuild
$ mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
$ echo '%_topdir %(echo $HOME)/rpmbuild' > ~/.rpmmacros
$ tree rpmbuild
rpmbuild
├── BUILD
├── RPMS
├── SOURCES
├── SPECS
└── SRPMS

5 directories, 0 files

2. 生成二进制RPM

$ rpmbuild --rebuild mpt2sas-20.00.00.00_centos7.0-1.src.rpm

一切顺利的话,你便会在~/rpmbuild/RPMS/x86_64目录里产生一个kmod-mpt2sas-20.00.00.00_centos7.0-1.x86_64.rpm文件(如果你的结构是x86_64,否则文件名称及目录都会相应地有变化)

另一种方法是先安装SRPM,然后以spec文件来重建,好处是可以按需要修改spec文件(或者加入修正文件,甚至乎将tar压缩档升级):

$ rpm -ivvvh mpt2sas-20.00.00.00_centos7.0-1.src.rpm
$ cd ~/rpmbuild/SPECS
$ rpmbuild -ba mpt2sas.spec

rpmbuild -ba这个指令会执行RPM创建过程里的所有步骤,然后在完成时创建一个 RPM组件(它会被存储在~/rpmbuild/RPMS/x86_64目录内,或者对应你结构的目录内),与及一个新的SRPM文件(它会被存储在~/rpmbuild/SRPMS内)。

参考:

https://wiki.centos.org/zh/HowTos/RebuildSRPM

分类: Linux
标签: SRPM RPM
未经允许不得转载: LIFE & SHARE - 王颜公子 » CentOS从源代码RPM生成二进制RPM

分享

作者

作者头像

Madman

如果博文内容有误或其它任何问题,欢迎留言评论,我会尽快回复; 或者通过QQ、微信等联系我

0 条评论

暂时还没有评论.

发表评论前请先登录