我刚刚按照发布的步骤将我的系统从 Lenny 升级到了 Squeeze这里我使用 apt-get 执行了所有步骤(在从 Etch 升级到 Lenny 时,我按照建议使用了 aptitude),升级顺利。
在日常工作中,我使用 aptitude 来维护系统更新,我非常喜欢自动处理未使用的软件包,所以如果我在删除 A 时安装依赖于 B 的软件包 A,那么 B 也会被删除,从而保持系统清洁。
我的问题是:apt-get 和 aptitude 是否共享软件包的自动处理?我不这么认为,因为我通过 apt-get 升级后发现 aptitude 中有很多软件包没有标记为自动。
我说得对吗?如果答案是肯定的,我该如何以自动化的方式解决这个问题?
答案1
(添加答案以便信息也在这里)
aptitude
保留底层系统之上的一些状态apt-get
。这会导致一个系统中设置的信息而另一个系统不知道。几年前,当我还在使用时aptitude
,我发现自己在两个系统中都进行了更新检查,因为我得到了令人困惑的结果。使用aptitude
独占会隐藏这个问题,但一旦你使用其他东西,它就会变得明显。
解决方案:使用仅有的 aptitude
或者绝不使用aptitude
。
答案2
发行说明说您应该使用 apt-get 来升级,而不是 aptitude。
http://www.debian.org/releases/squeeze/i386/release-notes/ch-upgrading.en.html#upgradingpackages+
从以前的 Debian GNU/Linux 版本升级的推荐方法是使用包管理工具 apt-get。在以前的版本中,建议使用 aptitude 来实现此目的,但最新版本的 apt-get 提供了等效功能,并且已证明可以更一致地提供所需的升级结果。
答案3
您可以使用自动处理未使用的包apt-get --auto-remove remove/purge
。
如果输入起来很麻烦,可以创建一个别名。我的别名分别是rr
和rrp
。