提取原rpm包里的SPEC文件及重新打包

一、概要

    目的是要修改原rsyslog rpm包的systemd rsyslog.service文件,添加一行“ExecStartPre=/bin/bash -c "/usr/bin/rm -f /var/lib/rsyslog/*"用于每次重启rsyslog都不会重读rsyslog上次挂了以后的断点日志,而是每次都要rsyslog重启后的重传日志。

现在需要通过rsyslog的官方rpm包解压文件并用rpm包里的spec文件重新打一份属于自己的包,也可以在spec文件里加一些自己的东西。

 

二、环境准备

机器环境: centos7一台

打包环境安装:

1. yum install epel-release centos-release -y

2.yum install rpm-build rpmrebuild rpm cpio

打包目录构建:

 

三、获取源rsyslog rpm包的文件及.spec

添加rsyslog yum源:

编辑/etc/yum.repos.d/rsyslog.conf:

[bsc-rsyslog]
name=Adiscon CentOS-$releasever - local packages for $basearch
baseurl=http://rpms.adiscon.com/v8-stable/epel-$releasever/$basearch
enabled=1
gpgcheck=0
protect=1

清除yum缓存: yum clean all

查看你可以下载rsyslog安装包:

命令: yum provides rsyslog

下载rsyslog rpm包:

命令: yumdownloader rsyslog-8.39.0-4.el7.x86_64

获取rpm包中的.spec文件:

rpmrebuild -e -p --notest-install rsyslog-8.39.0-4.el7.x86_64.rpm

这时会打开到该rpm包的spec文件为一个临时文件,用vim打开的,使用vim的另存为功能(shift键+":",输入w 文件名):

就会在当前目录保存一个rsyslog.spec的文件,这个就是rpm包的spec文件

获取rpm中的源文件

在当前目录创建一个目录用来装源文件:mkdir rsyslog

把rpm移至刚创建的目录: mv rsyslog-8.39.0-4.el7.x86_64.rpm rsyslog/

提取源文件: rpm2cpio rsyslog-8.39.0-4.el7.x86_64.rpm | cpio -div

图中列表就是源文件,已生成在当前目录。

四、打包流程

修改你想要修改的文件:

我这里修改了源文件中的./etc/rsyslog.conf以及./usr/lib/systemd/system/rsyslog.service

更改.SPEC文件进行打包:

这里我修改了名称、版本号。

然后把SPEC文件移至打包环境中的SPECS目录: mv rsyslog.spec SPECS/

通过SPEC文件打包:

开始打包:rpmbuild -bb SPECS/rsyslog.spec

发现报错知道咱们还没有把源文件移至BUILDROOT目录下做源文件来打包。

移动咱们刚才的源文件至BUILDROOT目录: mv rsyslog/ BUILDROOT/bsc-rsyslog-1.1.0-1.el7.x86_64/

再使用SPEC进行打包: rpmbuild -bb SPECS/rsyslog.spec

现在流程跑完了,查看RPMS目录是否有咱们的新rpm文件: 

发现已经生成了该文件,打包成功!

 

本文章关于通过源rpm修改其中的文件并通过原.spec文件重新打包成新rpm文件的分享结束!

 

 

 

本文章属于原创作品,如果有引用,请注明出处,谢谢!

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值