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

and*_*mes 5 apt

有一些类似的问题,但这正是我想要实现的目标以及我无法连接的点:

  1. 查询“手动安装”软件包列表(apt-mark showmanual作品)
  2. 检查每个包是否安装了依赖项
  3. 将每个这样的包标记为“自动安装”(apt-mark auto <pkg ...>有效)

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

apt-mark showmanual | <esoteric apt/bash magic> | apt-mark auto -
Run Code Online (Sandbox Code Playgroud)

那会是正确的吗?

相关问题

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

小智 2

您可以使用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
Run Code Online (Sandbox Code Playgroud)

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