如何修改rpm包

基本思路:

rpm包没有修改工具,只能是把rpm包解压、修改(包括增删)其中的文件,然后重新制作rpm包。

注:制作rpm包,需要原rpm包的spec文件。

所需工具:

rpmrebuild 

它主要是用来提取原rpm包中的spec文件。

rpmrebuild有如下两种安装方式(建议第1中):

 1)下载安装rpmrebuild rpm包

下载地址:

http://rpmfind.net/linux/rpm2html/search.php?query=rpmrebuild

rpm -ivh rpmrebuild-2.11-3.el7.noarch.rpm  安装后,可直接使用 rpmrebuild 命令。

2)下载解压tar包:

下载地址:https://jaist.dl.sourceforge.net/project/rpmrebuild/rpmrebuild/2.15/rpmrebuild-2.15.tar.gz

解压后,使用./rpmrebuild.sh 脚本,和 rpmrebuild命令一样。

rpmbuild

它主要是用来制作rpm包的。

步骤:

0)创建一个临时目录

mkdir -p /root/test_rpm_dir

cp mlnx-ofa_kernel-5.2-OFED.5.2.1.0.4.1.rhel7u3.x86_64.rpm /root/test_rpm_dir

cd  /root/test_rpm_dir

1)解压原rpm包

rpm2cpio mlnx-ofa_kernel-5.2-OFED.5.2.1.0.4.1.rhel7u3.x86_64.rpm | cpio -div

2)修改内容 

按自己需求修改内容,或增删文件

3)提取原rpm包spec文件 

#注:下面命令中的 --spec-only=test.spec 中的test.spec是要保存spec的文件路径(即把提取的spec文件保存为当前路径下的test.spec)。

有两种提取spec文件的方式:

a)从指定的rpm包文件中提取 

#注:-p, 即 --package 就是指使用rpm包文件,而不是系统中已安装的rpm。

#注:-n, 即 --notest-install,不要执行一个测试性的安装(do not perform a test install)。

#注:-s,即 --spec-only=<specfile> ,指只提取创建spec文件(generate specfile only)。

rpmrebuild  -p -n -s test.spec mlnx-ofa_kernel-5.2-OFED.5.2.1.0.4.1.rhel7u3.x86_64.rpm 

rpmrebuild  --package --notest-install --spec-only=test.spec mlnx-ofa_kernel-5.2-OFED.5.2.1.0.4.1.rhel7u3.x86_64.rpm 

a)从系统中安装的rpm中提取 

如果rpm包已经安装到系统中(且你已经从本地删除了该rpm包源文件),可以执行如下命令提取:

rpmrebuild -s test.spec -n mlnx-ofa_kernel-5.6-OFED.5.6.2.0.9.1.rhel7u4.x86_64

4)修改spec文件

如果有增删的文件,则需要在spec文件中体现

5)重新制作rpm

使用rpmbuild  通过指定--buildroot  和 提取的spec 重新制作包。

rpmbuild -ba  --buildroot /root/test_rpm_dir  test.spec

注:如果是已经删除了rpm包文件,只能从系统中已安装的rpm路径下打包对应文件来制作新的rpm包,此时应去掉 --buildroot /root/test_rpm_dir

参考:修改rpm中的文件重新打包 - 走看看

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Cenos 6.7 x86_64 yum安装 yum localinstal nginx-1.6.3-1.x86_64.rpm 定制安装过程 1: FPM 打工具安装 修改yum源: 备份 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 安装阿里云yum源 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo 安装依赖 yum -y install ruby rubygems ruby-devel 添加阿里云的Rubygems 仓库 gem sources -a http://mirrors.aliyun.com/rubygems/ #移除原生Ruby仓库 gem sources --remove http://rubygems.org/ 指定安装版本 gem install fpm -v 1.3.3 wget http://nginx.org/download/nginx-1.9.7.tar.gz wget http://nginx.org/download/nginx-1.6.3.tar.gz mkdir -p /application/tools cd /application/tools/ find /var/cache/yum/ -name "*rpm" yum install pcre-devel openssl-devel find /var/cache/ -type f -name '*rpm' find /var/cache/ -type f -name '*rpm'|xargs cp -t /tmp/ cd /tmp tar zcf nginx_yum.tar.gz *.rpm sz nginx_yum.tar.gz cd /application/tools/ useradd nginx -M -s /sbin/nologin tar zxf nginx-1.6.3.tar.gz ./configure --prefix=/application/nginx-1.6.3 --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module make make install ln -s /application/nginx-1.6.3/ /application/nginx /application/nginx/sbin/nginx ss -lntup|grep nginx ps -ef|grep nginx|grep -v grep netstat -lntup|grep nginx|grep -v grep curl 127.0.0.1 mkdir -p /server/scripts cd /server/scripts/ fpm -s dir -t rpm -n nginx -v 1.6.3 -d 'pcre-devel,openssl-devel' --post-install /server/scripts/nginx_rpm.sh -f /application/nginx-1.6.3/ 检查 rpm -qpl nginx-1.6.3-1.x86_64.rpm [root@nginx tools]# rpm -qpl nginx-1.6.3-1.x86_64.rpm /application/nginx-1.6.3/client_body_temp /application/nginx-1.6.3/conf/fastcgi.conf /application/nginx-1.6.3/conf/fastcgi.conf.default /application/nginx-1.6.3/conf/fastcgi_params /application/nginx-1.6.3/conf/fastcgi_params.default /application/nginx-1.6.3/conf/koi-utf /application/nginx-1.6.3/conf/koi-win /application/nginx-1.6.3/conf/mime.types /application/nginx-1.6.3/conf/mime.types.default /a
### 回答1: traceroute是一款常用的网络诊断工具,用于跟踪网络数据的路径,检测网络连接的正确性和瓶颈。跟踪网络数据路径的过程是通过向目标主机发送一系列数据,并记录每个数据的路由路径和时间,最后将信息呈现给用户。 在CentOS或Red Hat Linux,较新版本的traceroute可通过yum管理器直接安装RPM是基于Red Hat管理系统的软件,可以将软件简单地添加到系统。要安装traceroute RPM,用户可以使用以下命令: ```bash sudo yum install traceroute ``` 命令需要使用管理员权限运行。安装后,用户可以使用traceroute命令来跟踪网络数据的路径。 使用traceroute命令时,用户可以指定目标主机的域名或IP地址,例如: ```bash traceroute www.baidu.com ``` 该命令会向百度服务器发送数据,并返回数据的路由路径和时间。用户可以通过观察路由路径和时间来确定是否存在网络连接问题或瓶颈。如果用户希望在数据添加一些额外的选项,可以查看traceroute命令的帮助文档。 总之,traceroute RPM是一种网络诊断工具,以RPM的形式提供给CentOS或Red Hat Linux用户。用户可以使用yum管理器来轻松安装traceroute RPM,并使用traceroute命令来跟踪网络数据的路径。 ### 回答2: traceroute (也称为tracert)是一个命令行实用程序,用于跟踪网络数据的路径和网络速度。它通过递增TTL字段来实现工作原理,通过发送ICMP(Internet控制消息协议)回应信息,从而测量数据在网络上传输的时间。Traceroute RPM是一个用于Linux操作系统的安装,用户可以使用此将traceroute命令安装到他们的主机上,从而提供方便和快捷的网络跟踪工具。 Traceroute RPM是基于开放源代码的,可被许多人下载、修改、共享和重新发布。具体而言,用户可以在终端运行如下命令安装traceroute RPM: sudo yum install traceroute 安装完成后,用户可以通过在终端输入其所需跟踪的域名或IP地址来使用traceroute。此外,traceroute还支持其他用于跟踪网络路径信息的参数和选项。 总的来说,Traceroute RPM是一个很有用的工具,使用户能够快速发现网络出现问题的位置和确定网络速度瓶颈。同时,由于其开放源代码的特点和易于改进的策略,用户可以轻松地制定定制的版本,以适应其个人或组织的需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值