题: 如何查看或提取捆绑在各种操作系统软件包中的文件。例如,我想知道如何查看(和提取) rpm,deb,depot或msi文件.
回答: 您可以使用类似的工具 rpm,rpm2cpio,ar,dpkg,tar,swlist,swcopy,lessmsi 如下所述。
1. Redhat / CentOS / Fedora中的RPM软件包
使用rpm -qlp列出RPM软件包中的文件
RPM代表Red Hat软件包管理器。以下示例显示了如何在不解压缩或安装rpm软件包的情况下查看RPM软件包中可用的文件。
$ 转数-qlp ovpc-2.1.10.rpm /usr/src/ovpc/-5.10.0 /usr/src/ovpc/ovpc-2.1.10/examples /usr/src/ovpc/ovpc-2.1.10/examples/bin /usr/src/ovpc/ovpc-2.1.10/examples/lib /usr/src/ovpc/ovpc-2.1.10/examples/test . . . /usr/src/ovpc/ovpc-2.1.10/pcs
命令说明:rpm -qlp ovpc-2.1.10.rpm
- 转数— command
- q — query the 转数file
- l —列出软件包中的文件
- p —指定软件包名称
使用rpm2cpio和cpio从RPM软件包中提取文件
RPM是一种cpio存档。首先,使用rpm2cpio命令将rpm转换为cpio存档。接下来,使用cpio命令从存档中提取文件,如下所示。
$ rpm2cpio ovpc-2.1.10.rpm | cpio -idmv ./usr/src/ovpc/-5.10.0 ./usr/src/ovpc/ovpc-2.1.10/examples ./usr/src/ovpc/ovpc-2.1.10/examples/bin ./usr/src/ovpc/ovpc-2.1.10/examples/lib ./usr/src/ovpc/ovpc-2.1.10/examples/test . . . ./usr/src/ovpc/ovpc-2.1.10/pcs $ ls . usr
2. Debian中的Deb软件包
deb是Debian软件包格式的扩展。 * .deb也用于基于Debian的其他发行版中。 (例如:Ubuntu使用* .deb)
使用dpkg -c列出来自debian软件包的文件
dpkg是debian的软件包管理器。因此,使用dpkg命令,您可以列出并提取软件包,如下所示。
要查看* .deb文件的内容:
$ dpkg -c ovpc_1.06.94-3_i386.deb dr-xr-xr-x root/root 0 2010-02-25 10:54 ./ dr-xr-xr-x root/root 0 2010-02-25 10:54 ./ovpc/ dr-xr-xr-x root/root 0 2010-02-25 10:54 ./ovpc/pkg/ dr-xr-xr-x root/root 0 2010-02-25 10:54 ./ovpc/pkg/lib/ dr-xr-xr-x root/root 0 2010-02-25 10:48 ./ovpc/pkg/lib/header/ -r-xr-xr-x root/root 130 2009-10-29 17:06 ./ovpc/pkg/lib/header/libov.so . . . -r-xr-xr-x root/root 131 2009-10-29 17:06 ./ovpc/pkg/etc/conf dr-xr-xr-x root/root 0 2010-02-25 10:54 ./ovpc/pkg/etc/conf/log.conf
使用dpkg -x从debian软件包中提取文件
如下所示,使用dpkg -x从deb软件包中提取文件。
$ dpkg -x ovpc_1.06.94-3_i386.deb /tmp/ov $ ls /tmp/ov ovpc
DEB文件是ar存档,始终包含三个文件—debian-binary,control.tar.gz和data.tar.gz。我们可以使用ar命令和tar命令从deb包中提取并查看文件,如下所示。
首先,使用ar命令提取* .deb存档文件的内容。
$ ar -vx ovpc_1.06.94-3_i386.deb x - debian-binary x - control.tar.gz x - data.tar.gz $
接下来,提取data.tar.gz文件的内容,如下所示。
$ tar -xvzf data.tar.gz ./ ./ovpc/ ./ovpc/pkg/ ./ovpc/pkg/lib/ ./ovpc/pkg/lib/header/ ./ovpc/pkg/lib/header/libov.so . . ./ovpc/pkg/etc/conf ./ovpc/pkg/etc/conf/log.con
3. HP-UX中的软件仓库包
使用tar和swlist列出软件仓库包中的文件
DEPOT文件是HP-UX软件发行商目录库文件。 HP-UX软件仓库只是一个tar文件,还有一些其他信息,如下所示。
$ tar -tf ovcsw_3672.depot OcswServer/MGR/etc/ OcswServer/MGR/etc/opt/ OcswServer/MGR/etc/opt/OV/ OcswServer/MGR/etc/opt/OV/share/ OcswServer/MGR/etc/opt/OV/share/conf/ OcswServer/MGR/etc/opt/OV/share/conf/OpC/ OcswServer/MGR/etc/opt/OV/share/conf/OpC/opcctrlovw/
swlist是HP-UX命令,用于显示有关软件的信息。使用swlist命令查看仓库软件包的内容,如下所示。
$ swlist -l file -s /root/ovcsw_3672.depot # Initializing... # 联系ing target "osgsw"... # # Target: osgsw:/root/ovcsw_3672.depot # # OcswServer 8.50.000 Ocsw Server product # OcswServer.MGR 9.00.140 Ocs Server Ovw /etc /etc/opt /etc/opt/OV /etc/opt/OV/share /etc/opt/OV/share/conf /etc/opt/OV/share/conf/OpC
使用swcopy从软件仓库包中提取文件
Swcopy命令将软件选择从软件源复制或合并到一个或多个软件仓库target_selections。使用swcopy中的uncompress选项,您可以从软件仓库软件包中提取文件。
$ swcopy -x uncompress_files=true -x enforce_dependencies=false -s /root/ovcsw_3672.depot \* @ /root/extracted/ $ ls /root/extracted MGR catalog osmsw.log $
由于软件仓库文件为tar文件,因此您可以使用普通的tar提取程序进行提取,如下所示。
$ tar -xvf filename
4. Windows中的MSI
Microsoft安装程序是用于在Windows系统上安装,维护和删除软件的引擎。
使用lessmsi列出MSI软件包中的文件
该实用程序称为 lessmsi.exe 用于查看msi软件包中的文件而无需安装。相同的实用程序也用于提取msi程序包。选择要查看内容的MSI。 lessmsi将列出msi中可用的文件。
使用msiexec从MSI包中提取文件
Windows Installer工具(Msiexec.exe)用于从MSI程序包中提取文件。它可以在中打开MSI程序包“Administrator”安装模式,可以在不执行安装的情况下提取文件,如下所示。
C:\>msiexec /a ovcsw_3672.msi /qb TARGETDIR="C:\ovcsw"
如果您喜欢这篇文章,您可能还会喜欢..
![]() |
![]() |
![]() |
![]() |
不错的总结,谢谢。当我想查看rpm的内容时,通常使用Midnight Commander(mc)。它知道如何打开rpm文件。它们看起来像目录,mc不仅可以浏览cpio存档,还可以浏览安装前/安装后脚本,变更日志等。