如何从Red Hat Enterprise Linux上的RPM数据库中提取RPM


Answers:


7

如果要在升级或删除之前保存当前安装的软件包副本,请使用rpm --repackage- 它会将RPM保存在/ var / tmp或/ var / spool / repackage或其他位置,具体取决于您的配置。

否则,存在rpmrebuild,这正是你所要求的。

注意事项:使用这些工具都不会获得与*.rpm您开始使用的工具完全相同的工具。属于该软件包的已安装文件的任何更改都将在生成的RPM中。


1
我认为这是值得的注意的是rpm --repackageRe-package the files before erasing rpm.org/max-rpm-snapshot/rpm.8.html我几乎跑了盲目此命令,但在链接的文档看着第一。
凯文梅雷迪思

rpm --repackage在较新的(例如,RHEL 7)系统上似乎不可用。rpmrebuild可以在EPEL for RHEL 7中找到并为我做了诀窍。
jayhendren

1

生成原始rpm文件是不可能的,它已被提取并可能被丢弃。rpm数据库包含有关安装的文件及其校验和,权限和postinst脚本的信息:

# verify package contents
rpm -q packagename --verify
# read the scripts that run on installation and removal
rpm -q packagename --scripts

会给你一些信息。

如果您想从存储库获取rpm,我建议使用yum-utils包中的yumdownloader。

yum install yum-utils
yumdownloader packagename

这将下载最新的rpm,而不是当前安装的rpm。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.