如何找出给定的已安装软件包是从哪个存储库安装的?

如何找出给定的已安装软件包是从哪个存储库安装的?

如何找出给定的已安装软件包或程序是从哪个存储库安装的?我可以看到我安装的所有软件包dpkg -l。有没有办法查看它们的来源?

答案1

apt不跟踪从中获取包的存储库。您能做的最好的事情就是确定哪些存储库包含给定的包现在,据apt了解(因此从技术上讲,最后一次apt update运行)。

要查看apt给定包考虑哪些存储库,请使用apt policy;例如:

$ apt policy rr
rr:
  Installed: 5.2.0-1
  Candidate: 5.2.0-2
  Version table:
     5.2.0-2 100
        100 http://ftp.fr.debian.org/debian testing/main amd64 Packages
        100 http://ftp.fr.debian.org/debian unstable/main amd64 Packages
 *** 5.2.0-1 100
        100 /usr/var/lib/dpkg/status
     4.4.0-2+b1 500
        500 http://ftp.fr.debian.org/debian stretch/main amd64 Packages

此输出告诉我apt了解这些rr版本:

  • 4.4.0-2+b1,可以从我配置的 Debian 9 (Stretch) 存储库中获取;
  • 5.2.0-1,这是当前安装的版本,并且无法从任何当前配置的存储库中获取;
  • 5.2.0-2,可从我配置的测试和不稳定存储库中获取。

没有匹配存储库的版本可能会在多种情况下发生:

  • 用于托管版本的存储库,但不再这样做(如果您不升级软件包,并且新版本上传到您跟踪的存储库,则会发生这种情况);
  • 该软件包是从存储库安装的,然后存储库被删除;
  • 该软件包是从存储库以外的源安装的(这里就是这种情况:我安装的软件包是我本地构建的版本)。

相关内容