Debian 不再需要软件包

Debian 不再需要软件包

我在我的笔记本电脑上使用 Crunchbang Linux。我注意到包管理器的一个奇怪行为:当从官方存储库安装包时(libdirectfb-extra在我的例子中)apt告诉我不再需要一堆包(包括xfluxobconfobmenu我经常使用的其他应用程序)。我继续安装该软件包,但随后apt删除了所有不需要的软件包。

这是什么意思?为什么会发生这种情况?我不经常更新系统,是这个原因吗?

答案1

一个包“foo”可能依靠在另一个包“bar”上。这意味着如果没有安装“bar”,则无法安装“foo”。

包管理器的任务是确保如果用户请求安装“foo”,则安装包“bar”。

现在现代的包管理器还将保留每个包的记录,无论它是否已安装手动(因为用户请求安装此软件包)或自动地(因为用户请求安装另一个包,而另一个包又需要这个包)。

如果用户卸载包“foo”,系统可能会发现系统不再需要“bar”(系统上有“bar”的唯一原因是“foo”需要它;现在“foo”将消失, “酒吧”可能也应该消失)。

这应该可以保证您的系统不会因不需要的软件包而变得过于臃肿。

有时事情会更复杂一些。想象一下“foo”依赖于“bar”...但是“foo”的新版本和更新版本依赖于“baz”(并且根本不需要旧的“bar”)。升级“foo”时会发生什么?它将安装新的“baz”软件包,并删除自动安装的“bar”软件包。

答案2

这取决于你的解释是否准确。

如果它只是说它们将被删除,那么它们就会由于依赖冲突而被删除

如果它说不再需要它们,那么它们是通过依赖项安装的(例如,gnome-desktop 依赖于包)并且依赖包已被删除。当发生这种情况时,所有依赖项都被视为“可以删除”,因为它们没有显式安装。

为什么他们被移除?最可能的原因(如果您使用的是apt-get)是--auto-remove标志已传递,在某个时刻apt-get auto remove已运行或APT::Get::AutomaticRemove设置了配置选项。跑去apt-config dump | grep APT::Get::AutomaticRemove检查一下。

相关内容