使用rpm -qlp查看rpm包文件列表,rpm -qip查看元信息,rpm2cpio结合cpio提取文件;2. 使用dpkg -c查看deb包文件列表,dpkg -i查看包信息,ar x提取deb包内容后用tar解压data.tar.gz获取文件;3. 跨平台可使用7z直接查看或提取rpm和deb包,无需安装对应包管理器;所有操作均无需安装软件包即可完成查看与提取,且需注意文件路径为绝对路径,避免误覆盖系统文件,操作完成后应妥善处理提取内容以确保系统安全。

在 Linux 系统中,
.rpm和
.deb是两种常见的软件包格式,分别用于基于 Red Hat 的系统(如 CentOS、Fedora)和基于 Debian 的系统(如 Ubuntu、Debian)。有时我们不需要安装这些包,而是想查看或提取其中包含的文件内容。以下是查看和提取 rpm/deb 包内容的方法。
一、查看和提取 RPM 包内容
1. 查看 RPM 包中包含的文件列表
rpm -qlp package.rpm
-q
:查询-l
:列出文件-p
:指定包文件(而不是已安装的包)
示例:rpm -qlp httpd-2.4.6-97.el7.centos.x86_64.rpm
2. 不安装查看 RPM 包的元信息
rpm -qip package.rpm
-i
:显示包信息(版本、描述、依赖等)
3. 提取 RPM 包中的文件
RPM 本身不支持直接解压,但可以通过
rpm2cpio+
cpio工具链提取内容:
rpm2cpio package.rpm | cpio -idmv
rpm2cpio
:将 rpm 转换为 cpio 格式cpio -idmv
:-i
:提取-d
:创建目录-m
:保留文件时间-v
:显示过程
执行后,文件会按原始路径结构解压到当前目录。
二、查看和提取 DEB 包内容
1. 查看 DEB 包中包含的文件列表
dpkg -c package.deb
- 类似于
tar -tvf
,会列出包内文件及权限、大小、时间等。
示例:
dpkg -c nginx_1.18.0-6_amd64.deb
2. 不安装查看 DEB 包信息
dpkg -I package.deb
- 显示包的控制信息:包名、版本、架构、描述等。
3. 提取 DEB 包内容
DEB 包本质是一个 ar 归档文件,包含
control.tar.gz、
data.tar.gz和
debian-binary。
提取整个包内容:
ar x package.deb
执行后会生成:
debian-binary
:版本信息control.tar.gz
:安装脚本和元数据data.tar.gz
:实际的文件数据
提取实际文件内容:
tar -xzf data.tar.gz
或者一步提取 data 部分:
ar p package.deb data.tar.gz | tar -xz
三、通用方法(无需安装包管理器)
如果你在非对应系统上(比如在 Ubuntu 上查看 rpm 包),可以使用归档工具直接查看:
使用 7z
查看或提取(支持 rpm 和 deb)
7z x package.rpm 7z x package.deb
7z
可以直接解压这两种格式,适合跨平台使用。- 安装 7-zip:
- Debian/Ubuntu:
sudo apt install p7zip-full
- CentOS/RHEL:
sudo yum install p7zip-full
或使用 EPEL
- Debian/Ubuntu:
小贴士
- 不要随意提取系统包覆盖文件,可能导致系统不稳定。
- 若仅需查看某个配置文件或脚本,推荐使用上述命令查看,而非提取。
- 提取后注意路径结构,deb/rpm 中的文件路径通常是绝对路径(如
/usr/bin/xxx
)。
基本上就这些常用操作。无论是 rpm 还是 deb,都不需要安装即可查看和提取内容,关键是掌握
rpm2cpio | cpio和
ar + tar这两套工具链。










