如何重新创建已安装在 linux 系统上的 rpm?
4 回答
您使用的是哪个版本的 RPM?如果您使用的是较新的,我有一个可能对您有用的技巧。
较新版本的 RPM 具有事务安全回滚选项;只需使用 --repackage 命令,它就会生成一个包,其中包含原始安装的所有特殊废话。请注意,您实际上必须做一些事情(例如 rpm -e --repackage rpm_goes_here 这将删除原始文件,同时制作一个您应该能够恢复的包(在您制作副本之后),但是如果您希望这能完美运行,我有一个你可能想购买的 BRIDGE),所以如果你没有完整的备份,这有点信仰的飞跃。
涉及一些配置,您需要先测试测试测试,然后再尝试关键的东西,但这可能会奏效。
基本上,您必须执行以下操作:
1] 创建一个包含所有标题的 .spec 文件 [ http://www.rpm.org/max-rpm/s1-rpm-build-creating-spec-file.html ]
您必须使用 rpm -q --queryformat "" 从已安装的 rpm 中获取标头。例如。rpm -q --queryformat "Release: %{RELEASE}\n" installed_rpm
要获取文件以填充该%files
部分,请使用该rpm -ql
命令。
2]运行 rpmbuild -bb specfile
生成rpm文件。
重新创建 RPM 的最佳方法是从源 RPM 进行。很棒的教程在这里。
deltarpm包可以做到这一点:
A deltarpm contains the difference between an old and a new version of a rpm, which makes it possible to recreate the new rpm from the deltarpm and the old one. You don't have to have a copy of the old rpm, deltarpms can also work with installed rpms.