【rpm包学习2】解rpm包重新打rpm包

1.rpm常用命令

https://blog.51cto.com/u_16152230/6440742

-ivh:安装显示安装进度--install--verbose--hash
-Uvh:升级软件包--Update;
-e:删除包

 --nodeps                          忽略软件包的依赖关系强行安装  
 --force                           忽略软件包及文件的冲突 

-qi    #查询已经安装的rpm组件的信息【 rpm  -qi  nginx-filesystem 】
-ql    #查询已经安装的文件清单 【 rpm  -ql  wget 】

-qa | grep nginx   #查询所有安装的rpm包

-qpl:列出RPM软件包内的文件信息[Query Package list];
       rpm -qpl  rpms/wget-1.19.5-10.el8.x86_64.rpm 
-qpi:列出RPM软件包的描述信息[Query Package install package(s)];  
       rpm -qpi  rpms/wget-1.19.5-10.el8.x86_64.rpm 
-qf:查找指定文件属于哪个RPM软件包[Query File];
       rpm -qf  /usr/share/man/man1/wget.1.gz
-Va:校验所有的RPM软件包,查找丢失的文件[View Lost];

2.rpm包解压与重新打包

yum -y install rpmrebuild rpm-build rpmdevtools

https://blog.csdn.net/bandaoyu/article/details/128597343

2.1提取spec文件:

rpmrebuild  -p -n -s  wget.spec /root/rpms/wget-1.19.5-10.el8.x86_64.rpm

rpmrebuild 参数说明:

 rpmrebuild是一个从rpm包重建rpm文件的工具
   -n, --notest-install		do not perform a test install
   -p, --package                use package file, not installed rpm
   -s, --spec-only=<specfile>   generate specfile only. (If <specfile> "-" stdout will be used)

2.2解压原rpm包

mkdir   dst && cd  dst    #建一个dst目录存放解压出来的文件:
rpm2cpio   /root/rpms/wget-1.19.5-10.el8.x86_64.rpm | cpio -div

rpm2cpio命令用于将rpm软件包转换为cpio格式的文件。

https://blog.csdn.net/qq_33681891/article/details/133375715

2.3重新编出rpm包

mv    wget.spec    dst/
cd    dst/              #将spec文件和解压出来的文件都放在dst目录下
rpmbuild  -ba  --buildroot /root/dst/    dst/wget.spec      #重新编出rpm包

2.4结束

最终新rpm文件位置:
/root/rpmbuild/RPMS/x86_64/wget-1.19.5-10.el8.x86_64.rpm

编译输出:

# ls   /root/rpmbuild/
BUILD  BUILDROOT  RPMS  SOURCES  SPECS  SRPMS

# 生成两个结果文件:
/root/rpmbuild/SRPMS/wget-1.19.5-10.el8.src.rpm
/root/rpmbuild/RPMS/x86_64/wget-1.19.5-10.el8.x86_64.rpm
[root@localhost ~]# rpmbuild -ba  --buildroot /root/dst/   dst/wget.spec 
Processing files: wget-1.19.5-10.el8.x86_64
warning: Explicit %attr() mode not applicable to symlink: /root/dst/usr/lib/.build-id/8d/ec58c9a41fa3f0d9966de12c634bfa25b11451
warning: File listed twice: /usr/lib/.build-id
warning: File listed twice: /usr/lib/.build-id/8d/ec58c9a41fa3f0d9966de12c634bfa25b11451
Provides: bundled(gnulib) config(wget) = 1.19.5-10.el8 webclient wget = 1.19.5-10.el8 wget(x86-64) = 1.19.5-10.el8
Requires(interp): /bin/sh /bin/sh
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
Requires(post): /bin/sh /bin/sh /sbin/install-info
Requires(preun): /bin/sh /bin/sh /sbin/install-info
Wrote: /root/rpmbuild/SRPMS/wget-1.19.5-10.el8.src.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/wget-1.19.5-10.el8.x86_64.rpm
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.kEIRpv
+ umask 022
+ cd /root/rpmbuild/BUILD
+ /usr/bin/rm -rf /root/dst
+ exit 0

在这里插入图片描述

  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值