就像对答案Debian 9.1: apt-get autoremove will not remove dependency 的评论中提到的那样,我在 /etc/apt/apt.conf 中添加了该行Apt::AutoRemove::SuggestsImportant "false";
,然后能够删除从 Debian Fast Track 安装 VirtualBox 时自动安装的 g++ (我使用的是 Debian 12,因此我必须将代号 bullseye 替换为 bookworm,因为https://fasttrack.debian.net/上的说明未更新)。
但是apt autoremove
仍然不会卸载其他不再需要的自动安装的软件包,例如 libasan8。您知道为什么吗?有没有自动删除它们的解决方案?
以下是通过执行安装的所有软件包sudo apt install virtualbox
:
build-essential dkms dpkg-dev g++ g++-12 gcc gcc-12 libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan8 libc-dev-bin libc-devtools libc6-dev libcc1-0 libcrypt-dev libgcc-12-dev
libgsoap-2.8.124 libitm1 liblsan0 liblzf1 libnsl-dev libstdc++-12-dev libtirpc-dev libtsan2 libubsan1 libvncserver1 linux-compiler-gcc-12-x86 linux-headers-6.1.0-18-amd64 linux-headers-6.1.0-18-common
linux-headers-amd64 linux-kbuild-6.1 linux-libc-dev make manpages-dev patch rpcsvc-proto virtualbox virtualbox-dkms virtualbox-qt
以下是通过执行删除的包sudo apt purge virtualbox
:
virtualbox* virtualbox-qt*
通过执行以下命令删除这些附加包sudo apt autoremove --purge
:
dkms* libgsoap-2.8.124* liblzf1* libvncserver1* linux-headers-amd64* virtualbox-dkms*
Apt::AutoRemove::SuggestsImportant "false";
通过在添加/etc/apt/apt.conf后执行相同的命令,这些软件包也被删除:
build-essential* dpkg-dev* g++* g++-12* gcc* libalgorithm-diff-perl* libalgorithm-diff-xs-perl* libalgorithm-merge-perl* libstdc++-12-dev* make* patch*
根据我的评论后的要求,以下是输出aptitude why libasan8
:
i aptitude Recommends libdpkg-perl
i A libdpkg-perl Suggests gcc | c-compiler
i A gcc-12 Provides c-compiler
i A gcc-12 Depends libgcc-12-dev (= 12.2.0-14)
i A libgcc-12-dev Depends libasan8 (>= 12.2.0-14)