解压缩RPM文件并重新打包

Mon*_*eet 15 linux solaris rpmbuild

我有一个RPM文件.我必须对该RPM进行一些更改,重新打包并测试.谁能帮我?

Cor*_*son 14

修改没有源代码的RPM的最佳方法是按照以下步骤操作:

  1. 使用rpm2cpio命令将rpm解压缩到一个目录中
  2. 在该子目录中进行必要的更改
  3. 制作一个"虚拟"规范文件并构建它.

虚拟spec文件可能如下所示:

Name: blah
Version: 1.0
Release: 1
Summary: blah
License: blah
Distribution: blah
Group: blah
Packager: me
BuildRoot: /path/to/dir/with/mods

%description
blah

%files
/path/to/dir/with/mods/*
Run Code Online (Sandbox Code Playgroud)

将此处的每个"blah"替换为实际值(用于获取值).将BuildRoot替换为您已修改rpm已解包的目录.然后跑.rpm -qpi rpm filerpmbuild -bb dummy.spec

由于没有定义准备/设置/构建/安装步骤,因此它只需要使用buildroot中的内容并制作RPM.

如果rpm包有脚本文件,你还必须将它们放在这个虚拟spec文件中.要查看包是否包含任何脚本,请运行:.依赖关系,先决条件等也是如此.rpm -qp --scripts rpm file

我可能还有其他细节,但这应该足以让你入门.

更新:为了它的价值,还有http://rpmrebuild.sourceforge.net/


Jas*_*onw 0

我认为这是一个叫做补丁的概念。我开始使用此链接修补第一个 srpm 。但基本思想是,获取 srpm、安装 srpm、在构建区域目录中创建补丁并在规范文件中指定补丁文件 %patch0 -p1。然后进行 rpm 构建。快乐修补!