我有一个RPM文件。我需要对该RPM进行一些更改,重新打包并进行测试。是否有人可以帮助我?
修改没有源代码的RPM的最佳方法是按照以下步骤进行:
这个虚拟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/*
将这里的每个 "blah" 替换为实际值(使用 rpm -qpi rpm文件
获取值)。将BuildRoot替换为您拥有修改的rpm解包的目录。然后运行 rpmbuild -bb dummy.spec
。
由于没有定义预处理/设置/构建/安装步骤,因此它将只获取BuildRoot中的内容并制作RPM。
如果rpm软件包具有脚本文件,则还必须将它们放入此虚拟spec文件中。要查看软件包是否有任何脚本,请运行: rpm -qp --scripts rpm文件
。对于依赖项、先决条件等情况也是如此。
可能还有其他细节我没提到,但这已经足够让你开始了。
更新: 值得一提的是,还有一个名为 http://rpmrebuild.sourceforge.net/ 的工具。
我认为这是一个叫做“补丁”的概念。我开始使用link来打第一个srpm的补丁。但基本思路是:获取srpm,安装srpm,在构建区目录中创建您的补丁,并在spec文件中指定补丁文件%patch0 -p1。然后进行rpm构建。愉快地打补丁吧!
rpmbuild
的BUILDROOT
设置,这将无法正常工作。 - jmtd%files
应该相对于BuildRoot
。 - dma_kcpio
存档。第一步应该是:rpm2cpio pkg_name.rpm | cpio -idmv
。 - Hi-Angel