如何找出可以刪除哪些沒有安裝候選的軟體包?(如何正確清理此類包?)
為了在我目前的儲存庫中找到沒有安裝候選的軟體包,我執行了:(
apt-show-versions | grep "No available version in archive"
如此處推薦的)我認為最好是包管理器通知有從儲存庫安裝但不在任何一個儲存庫中的軟體包目前的儲存庫了。不過,這將是包管理器的(單獨)問題。
libgnome-keyring-common:all
該命令返回包,例如bum
和libgdbm3:amd64
。現在我想知道我可以安全地刪除其中哪些。我知道我通過安裝 .deb 文件安裝了其中的一些,這些不應該被刪除。
我已經嘗試執行
sudo apt-cache show libgdbm3
,sudo apt show libgdbm3
,sudo 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
曾經與它們一起使用過,例如昇級它們或試圖找出它們被阻止的原因。沒有“自動”標記的包不會被刪除,除非另一個包與它們發生衝突。即使是自動安裝的軟體包也可以比預期的更長時間:預設情況下,如果另一個軟體包建議它們,它們將不會被刪除(這是一個比任何會導致軟體包首先安裝的依賴更弱的依賴,預設情況下)。