我最近意识到 RPM 软件包几年前从 gzip 压缩转变为 xz 压缩。我需要检查我拥有的 RPM 包的压缩类型。我还需要检查我的系统在尝试解压 RPM 文件时考虑的压缩类型。
答案1
答案2
如果你使用rpm2cpio
;您不需要知道压缩格式。您可以rpm2cpio
像这样解压 rpm:
rpm2cpio your.rpm | cpio -idmv
答案3
讲话:支持哪些压缩格式?
很容易看出哪些内容不受支持,例如尝试在 RHEL 6 上从 Fedora 34 安装 RPM:
$ rpm --install https://dl.fedoraproject.org/.../Packages/t/tzdata-2021a-1.fc34.noarch.rpm
error: Failed dependencies:
rpmlib(PayloadIsZstd) <= 5.4.18-1 is needed by tzdata-2021a-1.fc34.noarch
尽管这种依赖关系没有以rpm-libs
可查询的方式显式公开--whatprovides
,但我们可以推断出支持的压缩格式rpm-libs
。
### why do all compression formats have "z" in the name? It's the fashion.
$ rpm -q --requires rpm-libs | grep '^lib.*z'
libbz2.so.1()(64bit)
liblzma.so.5()(64bit)
liblzma.so.5(XZ_5.0)(64bit)
liblzma.so.5(XZ_5.1.2alpha)(64bit)
libz.so.1()(64bit)
跟踪这一点的另一种方法是 Fedora 等的功能更改: