如何获取有关特定 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 的系统,那么了解 deb 文件实际上是一个ar基于 deb 的存档,其中包含 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
$

相关内容