Debian

解除安裝顯示意外的軟體包

  • November 25, 2021

在過去的幾周里,我已經從單伺服器設置為多伺服器設置。我現在準備從原始伺服器上解除安裝Let’s Encrypt / Certbot 。(我已經使用HA Proxy設置了 SSL 終止。)

我試過了apt remove --purge letsencrypt。但這顯示了我仍然需要的包:

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages were automatically installed and are no longer required:
 bsdmainutils cpp-8 dh-python libapache2-mod-php7.3 libasan5 libbind9-161 libbison-dev libboost-iostreams1.67.0 libboost-system1.67.0 libc-dev-bin libcwidget3v5 libdns1104 libdns1110 libevent-2.1-6 libf2fs-format4 libf2fs5 libgfortran5
 libicu63 libip6tc0 libiptc0 libirs161 libisc1100 libisc1105 libisccc161 libisccfg163 libisl19 liblinear3 libllvm7 liblua5.2-0 liblwres161 libmemcachedutil2 libmpdec2 libperl5.28 libprocps7 libpython3.7 libpython3.7-minimal
 libpython3.7-stdlib linux-libc-dev ncal perl-modules-5.28 php-symfony-debug php7.3 php7.3-bcmath php7.3-fpm php7.3-mysql php7.3-pgsql php7.3-soap php8.0-memcached python3-asn1crypto python3-future python3-mock python3-pbr python3.7
 python3.7-minimal usb.ids
Use 'apt autoremove' to remove them.
The following packages will be REMOVED:
 letsencrypt*
0 upgraded, 0 newly installed, 1 to remove and 5 not upgraded.
After this operation, 30.7 kB disk space will be freed.
Do you want to continue? [Y/n]

我在 PHP7.3 的末尾,只剩下 1 個腳本在使用它。我不精通 Python。有人可以解釋一下確定電腦不再需要的軟體包列表的邏輯嗎?

apt跟踪每個包的安裝,是因為它是被顯式請求的,還是因為它是作為依賴項自動引入的。當所有需要它們的軟體包本身都被刪除時,自動安裝的軟體包成為自動刪除的候選者。

確定為什麼包在特定環境中變得可自動刪除需要了解系統的歷史;這裡沒有足夠的資訊可以說。

但是,沒有理由驚慌:apt告訴您這些軟體包是自動刪除的候選者,而不是它會刪除它們。僅當您要求apt刪除它們(apt autoremove例如)時,才會刪除這些包。實際上,如果您確認問題中的命令,則只會letsencrypt刪除。

您可以通過將它們標記為手動安裝來避免這種情況,例如使用

sudo apt-mark manual bsdmainutils

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