从 RPM (rpm2cpio) 提取文件时出错 [已关闭]

问题描述 投票:0回答:3

我使用以下命令从 RPM 包中提取单个文件。

 pm2cpio <RPM_NAME> | cpio -ivdm <FILE_NAME>

它对我来说工作正常,但在一个系统(RHEL5.9)上,我收到此错误:

 cpio: premature end of file

我用谷歌搜索但找不到任何合适的答案和解决方案。 有人遇到过这个问题并可以帮忙吗?

linux rpm rhel
3个回答
3
投票

Redhat Bugzilla 项目rpm2cpio 在 rhel-6 rpms 上失败中提到了此问题,并包含类似于以下内容的快速修复,该修复需要安装 xz 软件包:

rpm2cpio foo.rpm | xzcat | cpio -idmv

1
投票

如果 RPM 来自 Fedora 12 或更高版本,它可能使用 不同的压缩。您至少需要 RPM v4.6 才能读取这些 RPM,而 RHEL5 仅附带 4.4

我假设您的其他系统是 Fedora 10 或更高版本,或者其他带有 RPM v4.6 或更高版本的发行版。


1
投票

新格式

用zstdcat提取zst存档格式

需要使用包管理器安装

zstd 和 zstcat

或手动构建项目

https://github.com/facebook/zstd

rpm2cpio foo.rpm | zstdcat | cpio -idmv
© www.soinside.com 2019 - 2024. All rights reserved.