我有一个针对 KDE 平台的“获取热门新内容”的待处理更新 ( libknewstuff2-4
)。
我不记得安装过任何与 KDE 依赖项相关的东西(我使用的是原始 Ubuntu),所以我试图弄清楚它为什么在那里。
我发现我可以使用
apt-cache rdepends --installed libknewstuff2-4
查找依赖于此的已安装软件包。这将我引向软件包python-kde4
。此软件包的上游是:python-qt4
和python-keyring
。
此时,事情变得难以理解。qt-4 似乎对 有一个循环依赖python-kde4
。我想我可以追溯到-keyring
,bzr
但我还看到 的python-crypto
上游-keyring
。-crypto
有比我愿意调查的更多的依赖项...
有没有更好的方法来理解这里发生的事情?或者,我基于非 KDE 特定的软件包(如 bzr)获取 kde 库是否有意义?
编辑:aptitude why
按照下面的建议使用似乎可以自动化我手动执行的操作apt-cache
:
$ aptitude why libknewstuff2-4
i bzr Depends python-bzrlib (>= 2.6.0+bzr6593-1ubuntu1.1)
i A python-bzrlib Recommends python-launchpadlib
i A python-launchpadlib Depends python-keyring (>= 0.5)
i A python-keyring Suggests python-kde4
i A python-kde4 Depends libknewstuff2-4 (>= 4:4.13.3)
虽然我不确定“推荐”和“建议”状态是什么意思。手册页上说:
请注意,本例中 aptitude 生成的依赖关系只是一个建议。这是因为当前安装在这台计算机上的软件包不依赖或推荐 ... 软件包;如果有更强的依赖关系,aptitude 会显示它。
那么 python-keyring “建议” python-kde4 究竟意味着什么,我是否可以选择引入这个“依赖项”?
答案1
另一种找出安装原因的方法是zgrep libknewstuff2 /var/log/apt/*
(您可能需要使用 sudo)。搜索结果可能会给您一些提示,告诉您为什么会安装这个...