作为前 Debian 用户,我“有点”记得我应该只使用其中一个包管理器...要么apt-get
,aptitude
要么synaptic
,但不能将这三个结合起来,因为可能会发生冲突,它们不能很好地混合在一起。
我不知道我在哪里听过这个,但它留下了记忆印记。所以我只想问你,这是否真的不建议,或者这只是一个都市传说,而且是完全安全的。你能证实这一点吗?
安装包的最干净的方法是否仍然是使用checkinstall
调用之前的命令dpkg
?
答案1
所有这些都用作dpkg
后端。两者都不使用任何专用数据库,因为使用其他数据库时数据库会崩溃。
这绝对是都市传说。
如果你想从源代码安装某些东西,最干净的方法是使用checkinstall
,或将其安装到/usr/local
。使用包管理器更好,因为这样删除该包就容易多了。
答案2
唯一真正的区别是能力。
如果您使用它以交互方式安装某些东西,然后在其他东西中删除该包,然后返回 Aptitude,它会认为您想重新安装它。您只需在加载时清除选择(通过菜单很容易)。
它还将运行自动删除,以便清除旧的依赖项。这能如果您不小心删除了元包的依赖项,并且删除了它及其所有依赖项,则很危险。如果您知道自己在做什么,这不是问题。
答案3
Synaptic 和 apt-get 兼容。Aptitude 与 synaptic 不兼容。这是事实,而不是另一位发帖者声称的“都市传说”。
今天我想找出我的系统有哪个 Java 运行时。谷歌搜索出现了以下建议:在命令 shell 中,输入:
能力搜索“?提供(java-runtime)”
这生成了以下内容(以及其他行):
pi gcj-4.4-jre pi gcj-jre
“pi” 的意思是它目前尚未安装,但已标记为可安装。因此,如果我进入 aptitude 并要求它安装所需的软件包,它将安装 gcj-4.4-jre。然而,在 Synaptic 中,它既未安装也未标记为可安装。如果我要求 Synaptic 安装所需的软件包,它什么也不做。
我不是这方面的专家,而且我不知道 aptitude 将它的包状态概念存储在哪里,但很明显它与 Synaptic 不兼容。