特定のDebianパッケージ(.deb)ファイルに関する情報を取得するにはどうすればよいですか? [コピー]

特定のDebianパッケージ(.deb)ファイルに関する情報を取得するにはどうすればよいですか? [コピー]

数日前に説明的な名前のない.debファイルをダウンロードしましたが、実行する前にそのファイルがどのバージョンであるかを知りたかったですdpkg -i

同じパッケージがリポジトリに含まれているかどうかわからないので、リポジトリ内のデータベースを照会するのではなく、実際のファイルからこの情報を抽出したいと思います。

答え1

パッケージに関する広範な情報を入手するには、以下を使用-Iします--info

dpkg-deb -I package.deb
dpkg-deb --info package.deb

バージョン使用量のみを取得するか、-f次の操作を行います--field

dpkg-deb -f package.deb Version
dpkg-deb --field package.deb Version

答え2

受け入れられる答えは間違いなく最善のアプローチです。

debベースのシステムがない場合は、ardebファイルが実際にはほとんど固定された名前の3つのファイルを含むdebベースのアーカイブラであることを知っておくと便利です。 debian-binaryはメタデータを含むcontrolという圧縮tarファイルで、メインパッケージはdataという圧縮tarファイルにあります。 control.tar.xz ファイルを抽出し、制御ファイルを抽出してバージョンを確認できます。

$ ar vt zile_2.4.14-6_amd64.deb
rw-r--r-- 0/0      4 Feb 10 11:00 2018 debian-binary
rw-r--r-- 0/0   1372 Feb 10 11:00 2018 control.tar.xz
rw-r--r-- 0/0 170540 Feb 10 11:00 2018 data.tar.xz
$ mkdir /tmp/e ; cd /tmp/e ; ar x ~-/zile_2.4.14-6_amd64.deb
$ xzcat control.tar.xz | tar vtf -
drwxr-xr-x root/root         0 2018-02-10 11:00 ./
-rw-r--r-- root/root       557 2018-02-10 11:00 ./control
-rw-r--r-- root/root       874 2018-02-10 11:00 ./md5sums
-rwxr-xr-x root/root       468 2018-02-10 11:00 ./postinst
-rwxr-xr-x root/root       167 2018-02-10 11:00 ./postrm
-rwxr-xr-x root/root       219 2018-02-10 11:00 ./prerm
$ xzcat control.tar.xz | tar xf -
$ grep Version control
Version: 2.4.14-6
$

関連情報