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

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

有没有办法从 Red Hat Enterprise Linux 上的 RPM 数据库中提取已安装的 RPM 来重现原始.rpm文件?

答案1

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

否则,存在rpmrebuild,它完全按照您的要求执行。

*.rpm需要注意的是:使用这两种工具,您都不会获得与开始时完全相同的结果。对属于软件包的已安装文件的任何更改都将包含在生成的 RPM 中。

答案2

无法生成原始 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。

相关内容