有什么方法可以通过其存储库(源、来源、PPA)获取已安装的软件包?

有什么方法可以通过其存储库(源、来源、PPA)获取已安装的软件包?

背景

没有相应存储库的包名称会产生误导。您无法仅使用包名称在系统 B 上重现系统 A 中的选择。

我所处的情况这很重要。

从 Internet 上的中央服务器下载的哑 .iso 或 .exe 文件更加透明、更加明确比 *NIX 和“智能”软件包(尤其是 RPM 和 DEB)。

想象一下安装 thief1.com/setup.exe、thief2.com/setup.exe、thief3.com/setup.exe 因为 yourbank.com/setup.exe 失败...

仅知道 thief1.com、thief2.com、thief3.com 存在于您的系统中是不够的。你需要(以某种方式)知道它是 thief2.com/setup.exe。

问题

有没有办法获取已安装软件包及其来源(来源、PPA)的列表?

类似于 Ubuntu 的这些链接:

理想情况下我也想要版本:

我正在寻找任何发行版的答案,因为我还没有听说过在任何地方有任何方法可以做到这一点。如果您可以在某个地方为 RPM/DEB 执行此操作,那就太好了。最好的答案是没有预先配置,但我也会接受带有 hacks 和 hooks 的答案来完成工作。

笔记

  • 这个问题不是关于获取包裹源代码
  • 这个问题不是关于从源安装包

答案1

最后一个 apt 版本(apt 1.6.12ubuntu0.2 (amd64))可以完成我想要的大部分工作:

apt list --installed

python/bionic,now 2.7.15~rc1-1 amd64 [installed,automatic]
python2.7/bionic-updates,bionic-security,now 2.7.17-1~18.04ubuntu1.2 amd64 [installed,automatic]
python2.7-minimal/bionic-updates,bionic-security,now 2.7.17-1~18.04ubuntu1.2 amd64 [installed,automatic]

但我仍然需要更好的格式:

我也不确定如何理解这里的“仿生更新,仿生安全”......

破碎的:

相关内容