如何將所有已安裝依賴項的軟體包標記為「自動安裝」?

如何將所有已安裝依賴項的軟體包標記為「自動安裝」?

有一些類似的問題,但這正是我想要實現的目標以及我無法連結的點:

  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

未經測試,因為這不是我想(必須取消)在我的機器上做的事情。

相關內容