Debian Jessie:状态为“id”的软件包什么时候会被删除?

Debian Jessie:状态为“id”的软件包什么时候会被删除?

我用 aptitude 删除了一些不再需要的软件包。令我惊讶的是,它们的依赖项都没有被自动删除(因为我认为 aptitude 默认情况下会这样做,与 apt-get 不同),所以我检查了这些依赖项,aptitude why并且所有依赖项都标记有 status id,根据手册,这意味着“已安装,将被删除”。什么时候会发生这种情况?我尝试运行apt-get autoremoveaptitude upgradeaptititude full-upgradeapt-get dist-upgrade,并且软件包仍然安装。另外,当我运行这些命令时,它们都会打印0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.What Causes the diffrepancy Between0 to remove和having packages tagged with status id?

编辑:经过更多挖掘后,我发现所有这些软件包都被标记为手动安装,即使它们是自动安装的。我查看了我的历史记录,发现其中许多都是使用 apt-get 而不是 aptitude 安装的,这可能是问题的一部分。我可以使用以下命令将它们全部删除:

# aptitude search "?installed" | grep "^id" | awk '{ print $2 }' | xargs apt-mark auto
# aptitude upgrade

我仍然很好奇“d”状态到底意味着什么,以及 apt-get/aptitude 用它做什么,所以我把这个问题留下来。

答案1

输出中的第二个状态dpkg -l是选择,即所需状态。现在主要使用这个dselect,但也可以使用dpkg --set-selections。要从当前状态进入选择,您甚至需要一些能够查看选择的东西,而 aptitude 和 apt 默认情况下不会这样做。

不过,Apt 有一个选项可以做到这一点。赶紧跑:

apt-get dselect-upgrade

这应该进行所需的修改。

我不知道为什么包裹被留在一个id状态。也许卸载没有成功完成?

相关内容