Debian

如何獲取特定 Debian 軟體包 (.deb) 文件的資訊?

  • March 2, 2018

幾天前我下載了一個沒有描述性名稱的 .deb 文件,我想在執行之前知道它是哪個版本dpkg -i

我不知道儲存庫中是否也有相同的包,因此我希望從實際文件中提取此資訊,而不是查詢儲存庫的數據庫。

要獲取有關軟體包使用的大量資訊-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

接受的答案絕對是最好的方法。

如果您手頭沒有基於 deb 的系統,那麼了解 deb 文件實際上是一個ar基於存檔的文件會很有幫助,其中包含 3 個幾乎固定名稱的文件。有 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
$

引用自:https://unix.stackexchange.com/questions/424142