Debian

如何找出可以刪除哪些沒有安裝候選的軟體包?(如何正確清理此類包?)

  • January 6, 2021

為了在我目前的儲存庫中找到沒有安裝候選的軟體包,我執行了:(

apt-show-versions | grep "No available version in archive"如此處推薦

我認為最好是包管理器通知有從儲存庫安裝但不在任何一個儲存庫中的軟體包目前的儲存庫了。不過,這將是包管理器的(單獨)問題。

libgnome-keyring-common:all該命令返回包,例如bumlibgdbm3:amd64

現在我想知道我可以安全地刪除其中哪些。我知道我通過安裝 .deb 文件安裝了其中的一些,這些不應該被刪除。

我已經嘗試執行sudo apt-cache show libgdbm3, sudo apt show libgdbm3sudo dpkg -p libgdbm3但它只顯示(後一個命令):

Package: libgdbm3
Priority: important
Section: libs
Installed-Size: 68
Maintainer: Debian QA Group <packages@qa.debian.org>
Architecture: amd64
Multi-Arch: same
Source: gdbm
Version: 1.8.3-14
Depends: libc6 (>= 2.14), dpkg (>= 1.15.4) | install-info
Filename: pool/main/g/gdbm/libgdbm3_1.8.3-14_amd64.deb
Size: 30042
MD5sum: 4bd924fc8be5471a12d1e0204c74d6c3
Description: GNU dbm database routines (runtime version)
Description-md5: 900375b4641d82391c1c951c3b8647f6
Homepage: http://directory.fsf.org/project/gdbm/
Tag: role::shared-lib
SHA256: fbce0e2500aa970ed03665d15822265ff8d31c81927b987ae34e206b9b5ab0b6

而不是這個包是如何安裝的。當我跑步時,sudo apt-get remove gdbm我得到E: Unable to locate package gdbm.

如何正確清除沒有安裝候選的軟體包?為什麼當它們通過儲存庫安裝但不再在目前儲存庫中時,它們不會自動刪除或提示刪除?(似乎每次更改儲存庫或完成升級時都應該這樣做。)

系統是 Debian10/KDE。

我建議將所有此類軟體包標記為自動安裝:

apt-show-versions | awk '/No available version in archive/ { print $1 }' | xargs sudo apt-mark auto

然後apt autoremove將淘汰那些可以刪除的;您需要檢查列表並取消標記您想要保留的任何包 ( apt-mark manual)。

包裹可能會以多種方式失去其“自動”標記;特別是如果apt install曾經與它們一起使用過,例如昇級它們或試圖找出它們被阻止的原因。沒有“自動”標記的包不會被刪除,除非另一個包與它們發生衝突。即使是自動安裝的軟體包也可以比預期的更長時間:預設情況下,如果另一個軟體包建議它們,它們將不會被刪除(這是一個比任何會導致軟體包首先安裝的依賴更弱的依賴,預設情況下)。

引用自:https://unix.stackexchange.com/questions/627829