有没有可以防止“自残”的 Linux 发行版?

有没有可以防止“自残”的 Linux 发行版?

在过去的一周里,我已经安装并重新安装了 Linux 好几次(除了一次之外,所有的都是 Mint 15;Ubuntu 13.04 在我的笔记本电脑上太慢了),在今天 QT 出了问题之后,我愤怒地彻底放弃了。

我安装了默认的 qt-sdk、qtcreator qt-dev-tools,也许还通过 Mint 的软件包系统安装了另一个。我尝试使用 3 年前制作的 QT 编译一个 IDE,它抱怨 QT 需要不高于 4.*。所以我卸载了QT,并从头开始构建QT,这花了两天时间大约4个小时。此后,程序说 QT_MOC_EXECUTABLE 和其他几个无法找到,即使 qmake 在那里。所以我make uninstall使用了 Synaptic 管理器来下载 QT。此后,即使选择了 qtchooser 软件包,也找不到 qtchooser。所以,我sudo apt-get autoremove,及时删除了许多系统关键文件,就像sudo

首先,为什么 QT 会被允许永久删除这些系统关键文件?为什么包管理器在卸载单个程序时会删除依赖项?其他事物仍然需要这些依赖项,但由于某种原因,这些包管理器的开发人员没有意识到这一点。

所以,我的问题是,是否有任何发行版可以防止这种情况,或者有任何程序可以阻止发行版从内到外消灭自己?

从我对 Gentoo 的了解来看,它似乎至少尝试这样做。

答案1

我尝试使用 3 年前制作的 QT 编译一个 IDE,它抱怨 QT 需要不高于 4.*。所以我卸载了QT,并从头开始构建QT,这花了两天时间大约4个小时。

大多数发行版都提供 Qt 3 和 4,并且您可以同时安装这两个版本。所以如果你问过这个问题第一的,你本可以节省自己很多时间和麻烦,而不是等到你太沮丧除了咆哮之外什么也做不了。 :(

所以,我 sudo apt-get autoremove

为什么?不要因为沮丧而做出疯狂的事情,这就是人们破坏事物的方式。 (“呃……我会解决这个问题!让我拿更大的锤子!”)

为什么包管理器在卸载单个程序时会删除依赖项?其他事物仍然需要这些依赖项,但由于某种原因,这些包管理器的开发人员没有意识到这一点。

事实上,他们通常确实意识到了这一点,并且真正依赖于其他东西的东西并没有被删除。卸载其他东西不需要的依赖项的原因是为了让您的生活更轻松。如果我为一个程序在 10 个软件包中安装 3 GB,然后决定删除它,那么自动删除其他 9 个程序包也是一种选择特征

有一个不错的描述这里当您不希望删除自动安装的依赖项时如何处理它们。

请记住,包管理器不会跟踪您从源代码等安装的内容,因此它们无法告诉您已经安装了 Qt 以及所有依赖项自动在一起,然后从源代码构建另一个 Qt,但使用发行版中的相同依赖项。如果您随后删除发行版 Qt,则必须取消该链接中提到的其他 Qt 所需的依赖项...或者稍后通过重新安装它们来解决它。

如果,当您要安装具有依赖项的东西时,您中止并手动安装每个必需的软件包直到拥有所有内容,那么卸载一个软件包不会删除任何其他软件包。这只是自动安装执行此操作的依赖项。

相关内容