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