如何提取 rpm 的内容?

新手上路,请多包涵

我有一个 rpm,我想把它当作一个 tarball。我想将内容提取到目录中,以便检查内容。我熟悉已卸载包的查询命令。我不想简单地列出 rpm 的内容。 IE

 $ rpm -qpl foo.rpm

我想检查 rpm 中包含的几个文件的内容。 我不想安装rpm。 我也知道 rpms 能够在 %post 部分进行额外的修改,以及如何检查这些。 IE

 $ rpm -qp --scripts foo.rpm

但是在这种情况下,这与我无关。

原文由 Jeff Sheffield 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 526
2 个回答

您是否尝试过 rpm2cpio ?请参见下面的示例:

 $ rpm2cpio php-5.1.4-1.esp1.x86_64.rpm | cpio -idmv

/etc/httpd/conf.d/php.conf
./etc/php.d
./etc/php.ini
./usr/bin/php
./usr/bin/php-cgi
etc

原文由 linux_fanatic 发布,翻译遵循 CC BY-SA 3.0 许可协议

$ mkdir packagecontents; cd packagecontents
$ rpm2cpio ../foo.rpm | cpio -idmv
$ find .

供参考:cpio 参数是

-i = extract
-d = make directories
-m = preserve modification time
-v = verbose

我在这里找到了答案: lontar’s answer

原文由 Jeff Sheffield 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题