![可升级包的列表是否存储在任何地方?如果是的话,在哪里?](https://linux22.com/image/220410/%E5%8F%AF%E5%8D%87%E7%BA%A7%E5%8C%85%E7%9A%84%E5%88%97%E8%A1%A8%E6%98%AF%E5%90%A6%E5%AD%98%E5%82%A8%E5%9C%A8%E4%BB%BB%E4%BD%95%E5%9C%B0%E6%96%B9%EF%BC%9F%E5%A6%82%E6%9E%9C%E6%98%AF%E7%9A%84%E8%AF%9D%EF%BC%8C%E5%9C%A8%E5%93%AA%E9%87%8C%EF%BC%9F.png)
我正在寻找一种方法来获取 Debian 和 RHEL 发行版的所有可升级软件包的列表。我知道 dpkg 在 中存储了一些数据/var/lib/dpkg/status
,但我没有发现任何内容表明给定的软件包有可供更新的新版本。
我想,由于apt list --upgradable
非常快地列出所有可用的升级,它必须依赖于某些缓存:它是否可以作为文件在某处使用?
我对 RHEL 没有任何线索:dnf
似乎有一个缓存/var/cache/dnf
,但它主要是二进制文件。
答案1
apt
并且dnf
不存储可升级包的列表,他们会在被要求时计算它。他们通过将已安装软件包的版本与配置的存储库中可用的版本进行比较来做到这一点;后者的信息是缓存(例如在)/var/lib/apt/lists
中apt
。
答案2
对于 RHEL,您可以运行命令
dnf check-update
如果没有参数,它会检查所有包上的可用更新,并打印可以更新的包的名称。