如何将所有已安装依赖项的包标记为“自动安装”?

如何将所有已安装依赖项的包标记为“自动安装”?

有一些类似的问题,但这正是我想要实现的,也是我难以连接点:

  1. 查询“手动安装”包的列表(apt-mark showmanual有效)
  2. 检查每个包裹已安装受抚养人
  3. 将每个这样的包标记为“自动安装”(apt-mark auto <pkg ...>有效)

所以我认为我的命令看起来像这样:

apt-mark showmanual | <esoteric apt/bash magic> | apt-mark auto -

那正确吗?

相关问题

  1. 我如何找到可以设置为自动安装的包?
  2. 为什么几乎所有软件包都标记为手动安装?(也可以看看https://bugs.launchpad.net/ubuntu/+source/livecd-rootfs/+bug/424643/comments/26

答案1

你可以使用Aptitude 的why命令

for x in $(apt-mark showmanual)
do
  r="$(echo ${x} | sed -e 's/\([+.]\)/[\1]/g')"
  aptitude why ${x} | egrep -q "^i.* (Pre)?Depends +${r}( |$)" && apt-mark auto ${x}
done

未经测试,因为这不是我想要(必须取消)在我的计算机上做的事情。

相关内容