GNU/Linux >> Linux の 問題 >  >> Linux

rpm、deb、depot、および msi パッケージからファイルを表示および抽出する方法

質問: さまざまなオペレーティング システムのパッケージ内にバンドルされているファイルを表示または抽出するにはどうすればよいですか。たとえば、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 パッケージで使用可能なファイルを表示する方法を示しています。

$ 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

  • rpm — コマンド
  • q — rpm ファイルを照会します
  • 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 の 3 つのファイルが常に含まれています。以下に示すように、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 Software Distributor Catalog Depot ファイルです。 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...
# Contacting 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 コマンドは、software_selections をソフトウェア ソースから 1 つ以上のソフトウェア デポ 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 パッケージのファイルを一覧表示する

インストールせずに msi パッケージのファイルを表示するには、lessmsi.exe というユーティリティを使用します。同じユーティリティを使用して、msi パッケージを抽出します。コンテンツを表示する msi を選択します。 lessmsi は、msi で利用可能なファイルを一覧表示します。

msiexec を使用して MSI パッケージからファイルを抽出する

Windows インストーラー ツール (Msiexec.exe) を使用して、MSI パッケージからファイルを抽出します。 MSI パッケージを「管理者」インストール モードで開くことができ、以下に示すように、インストールを実行せずにファイルを抽出できます。

C:\>msiexec /a ovcsw_3672.msi /qb TARGETDIR="C:\ovcsw"

Linux
  1. DebianパッケージアーカイブDEBからファイルを抽出する方法

  2. Linuxでファイル、パッケージ、およびリポジトリをクエリする方法

  3. Linuxで.gzファイルと.tar.gzファイルを抽出する方法

  1. LinuxでRPMまたはDEBパッケージからインストールされたファイルを一覧表示する方法

  2. Ubuntu11.10およびUbuntu11.04にRPMパッケージをインストールします

  3. ファイルを移動して進行状況を表示する方法(例:プログレスバーを使用)?

  1. UbuntuにRPMパッケージをインストールする方法

  2. CheckInstallを使用してソースからパッケージを構築する方法

  3. RPM パッケージをインストールせずに抽出する方法