使用 dpkg 获取包信息

使用 dpkg 获取包信息

我正在尝试使用dpkg工具列出我的计算机上安装了哪些软件包。使用该-l选项,它会报告某些软件包的“un”,这意味着未知,“未安装”。 “未安装”标志是否意味着存在这样一个软件包,它可用于我正在运行的系统,但它不存在于我的计算机(本地)上,我必须.deb从网络下载该文件并安装它?

答案1

我将首先解决根本问题:

dpkg -l | grep '^.i'

将列出所有已安装的软件包。其他工具也可以提供此信息;例如

apt list --installed

dpkg -l的输出中,“未安装”确实意味着dpkg知道软件包的存在,即使它没有安装在您的系统上。包文件本身可能在您的系统上可用,例如在 的 APT 缓存中/var/cache/apt/archives,但dpkgs 不知道这一点。从dpkg的角度来看,正如您所说,您必须下载软件包文件,或以其他方式获取它,然后安装它。

答案2

dpkg打印un(未知),因为其数据库未更新。您可以使用sync-availablefromdctrl-tools包来同步dpkg信息apt

sudo apt install dctrl-tools
sudo sync-available

man sync-available:

 sync-available - sync dpkg's available database with apt's database 

DESCRIPTION
This program updates the dpkg(8) available database with the data in the apt(8)
package database. This is required for grep-available(1) and other similar
programs to give up-to-date results.

相关内容