依存関係がインストールされているすべてのパッケージを「自動的にインストール済み」としてマークするにはどうすればよいですか?

依存関係がインストールされているすべてのパッケージを「自動的にインストール済み」としてマークするにはどうすればよいですか?

類似した質問がいくつかありますが、私が達成したいことと、結び付けるのに苦労している点は次のとおりです。

  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

使用できる適性の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

これは私のマシン上で実行したい(元に戻す必要のある)ものではないため、テストされていません。

関連情報