如何修改rpm安装包内容,修改完成后如何重新打包

背景

前段时间项目中有一个引入novnc服务的需求,就是使用第三方的软件包部署为服务,在我的其他文章中有介绍如何使用。最近提了个新需求:vnc服务的页面标题需要修改,里面的密码需要自动填充。也就是说,需要将第三方软件包里面的某些内容进行修改。在网上找了一些教程文章,都比较繁琐麻烦,所以我简单整理了一下

思路

正常情况下,我们拿到了rpm包只能是进行安装操作,没办法改里面的东西。所以要想办法将rpm包解压,获得安装包里面的文件,按照需求修改完后,再把文件打成rpm包。

所需工具

1、rpmbuild:用来解压和制作rpm包工具,制作rpm包时,依赖rpm包中的spec文件

安装方法:yum install rpm-build

2、rpmrebuild:用来提取原rpm包中的spec文件

安装方法:
下载安装包:http://rpmfind.net/linux/rpm2html/search.php?query=rpmrebuild
执行命令:rpm -ivh 安装包文件名.rpm

步骤

1、创建工作目录:在根目录下创建一个文件夹,后续的解压打包操作都在此文件夹内操作

本人有幸踩坑,没有创建专用的工作文件夹,直接在home目录下搞的,最后用rpmbuild打包的时候,里面有rm -rf脚本,把我的home目录干没了…血哭,项目、数据库啥的都在home目录下,全没了…cao!!

2、将要修改的rpm包放到工作目录下,执行命令进行解压:

rpm2cpio rpm包名.rpm | cpio -div

3、解压完成后按照自己的需求,修改里面的文件

4、提取原rpm包的spec文件,执行命令:

rpmrebuild  -p -n -s test.spec rpm包名.rpm

当前目录下生成test.spec文件

5、如果有增删的文件,则要修改spec文件(如果只是修改里面某些文件的内容,则跳过此步骤)

举例:
打开spec文件:vi test.spec

原内容为:%attr(0644, root, root) “/usr/lib/123.jar”

修改文件时,将123.jar替换为了456.jar

则新内容改为:%attr(0644, root, root) “/usr/lib/456.jar”

保存test.spec

6、完成修改后,重新制作rpm

rpmbuild -ba  --buildroot /路径/test.spec

7、新的rpm包路径:/root/rpmbuild/RPMS

附rpm基本命令

1、安装
rpm -ivh xxx.rpm
2、查看已安装rpm软件
rpm -qa | grep xxx
3、卸载已安装rpm软件
rpm -e xxx --nodeps
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值