为什么包被列为“已安装”、“已安装、自动”或“已安装、本地”?

DK *_*ose 13 package-management apt

我已阅读什么将应用程序分类为 Ubuntu 中的“已安装”?但它没有解决以下问题:

当我apt list --installed在 Kubuntu 16.04 上运行时,我看到我列出的所有软件包都有[installed][installed,automatic]。然而,我看到有报告称,用户的少数甚至大部分软件包被描述为[installed,local]. 在这最后一种情况下,他们的软件包似乎已经过时了。

是否[installed,local]等同于 Synaptic 包管理器所描述的“本地或过时”,如Synaptic 中“本地或过时”的含义是什么?

mur*_*uru 9

使用以下方法检查我的系统:

apt list --installed | awk -F/ '/local]/{print $1}' | xargs apt-cache policy
Run Code Online (Sandbox Code Playgroud)

每个标记的软件包local都有一个安装版本,该版本在存储库中不可用。例如,我folly使用checkinstall. 在apt list --installed

folly/now 57.0-1 amd64 [installed,local]
Run Code Online (Sandbox Code Playgroud)

而对于apt-cache policy

folly:
  Installed: 57.0-1
  Candidate: 57.0-1
  Version table:
 *** 57.0-1 100
        100 /var/lib/dpkg/status
Run Code Online (Sandbox Code Playgroud)

您可以从源中验证这一点。apt list调用apt-private/private-list.cc's 的DoList()函数,这反过来又调用了apt-private/private-output.cc'sListSingleVersion(),您可以在其中看到:

apt list --installed | awk -F/ '/local]/{print $1}' | xargs apt-cache policy
Run Code Online (Sandbox Code Playgroud)