在 Gentoo 中安全卸載軟體包

在 Gentoo 中安全卸載軟體包

我想卸載 Gentoo 中的某個特定包,並瀏覽了emerge 手冊頁。我找到了這個--unmerge選項:

警告:此操作可能會刪除重要的套件!刪除所有符合的包。這不會檢查依賴關係,因此它可能會刪除系統正常運作所需的套件。對於依賴項感知版本 --取消合併, 使用--depclean或者- 修剪

但是,我想檢查系統中任何其他已安裝的軟體包是否需要我要卸載的軟體包。--depclean且不--prune提供該功能:

  • --depclean刪除作為依賴項安裝但不再需要的軟體包
  • --prune“從系統中刪除除最高安裝版本之外的所有軟體包”

是否沒有依賴項檢查版本--unmerge

答案1

我不認為depclean按照你描述的方式工作。沒有任何參數它確實如此,但如果你向它傳遞一個套件名稱,它的工作方式就像unmerge進行額外的依賴項檢查。從emerge(1)

Depclean 充當--unmerge.當給定一個或多個原子時,它將取消合併沒有反向依賴關係的匹配包。--depclean與 一起使用--verbose來顯示反向依賴關係。

我總是使用--depclean( -c) 來取消合併單一套件;效果很好

答案2

實現相同結果的另一種方法(儘管它不是透過依賴項檢查取消合併的命令):emerge --deselect package,它從世界文件中刪除包。現在,運行emerge --depclean將刪除該包,前提是任何其他包都不需要它。

答案3

gentoolkit 可以幫忙:

equery d <atom>

您可以先檢查依賴關係,然後在檢查其依賴關係後繼續刪除套件。

答案4

有時,emerge --unmerge會給予以下警告訊息:

 * This action can remove important packages! In order to be safer, use
 * `emerge -pv --depclean <atom>` to check for reverse dependencies before
 * removing packages.

似乎這是在取消合併包之前進行依賴項檢查的建議方法。不過,我仍然希望有一種更好、更自動化的方法來實現這一目標。

相關內容