使用rpm2cpio

时间:2016-03-14 14:13:48

标签: linux rpm cpio

我在RHEL-6.4上提取rpm包。我使用rpm2cpio命令如下:

rpm2cpio package-name.rpm | cpio -u -i -d ---quiet 2>&1

以上命令在fakeroot v1.12.4环境中运行。 (cpio(GNU cpio)2.10)执行上述命令后,如果我使用file命令检查文件tpye,则将文件显示为目录。

我使用

检查了rpm的内容
rpm -qlpv package-name.rpm

它将所有文件显示为文件和目录。

但是,我注意到我是unset LD_LIBRARY_PATH然后使用file命令检查文件类型,它会显示与rpm -qlp相同的所有数据。

LD_LIBRARY_PATH设置为

/opt/tools/wh/dtd/RHE-5/fakeroot/1.12.4/lib64/libfakeroot

为什么在设置LD_LIBRARY_PATH时文件被标记为目录?

1 个答案:

答案 0 :(得分:0)

好吧,rpm2cpio提取包含目录结构的存档。所以  存档中的/ usr / bin / foo变为:

d /usr
d   /bin/
f      foo 

所以usr确实是目录。但/ usr / bin / foo是文件(它确实是我工作站上的文件)。当然,如果你有LD_LIBRARY_PATH设置的东西(你没有共享什么),那么它可以指向修改任何系统库和任何系统调用的目录。所以结果可能是任何事情。如果不了解本地设置,很难分辨。

注1:您可以从rpmdevtools包中调用rpmdev-extract。它更舒服。

注意2:我在支持的选项中看不到--queryformat perms之类的内容,但您可以-qlpv