有没有办法从 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。