回答に関するコメントで述べたようにDebian 9.1: apt-get autoremove は依存関係を削除しません。、/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*
/etc/apt/apt.confを追加した後、同じコマンドを実行してApt::AutoRemove::SuggestsImportant "false";
これらのパッケージも削除されました。
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)
答え1
私の答えの目的Debian 9.1: apt-get autoremove は依存関係を削除しません。apt install
振る舞いと対称性を作るために、前者apt autoremove
は基本的に「提案された」依存関係を無視し、答えは後者にそれを無視させる方法を説明します。
あなたの場合は、からインポートされたすべてのパッケージを自動的に削除する方法がないと思いますvirtualbox
。その1つlinux-headers-6.1.0-18-amd64
は保護されたカーネルパッケージ(/etc/apt/apt.conf.d/01autoremove
システム参照)であるためです。少なくとも2つの最新のカーネルがインストールされるまでは、自動アンインストールの対象ではないため、削除するには手動で削除する必要があります。
sudo apt purge linux-headers-6.1.0-18-amd64
そこはい対応するAPTオプションをApt::Protect-Kernels
無効にできます。ただし、最新のパッケージ 6.1.0-18 と一致するカーネルを実行すると仮定すると、ヘッダーパッケージは保護され続けます。
パッケージが削除されると、Cコンパイラは自動削除候補になり、残りのパッケージapt autoremove
全体ではなくてもほとんどを削除する必要があります。
そうでない場合は、「推奨」依存関係を無視するように指示autoremove
(または)する必要があります。autopurge
sudo apt -o Apt::AutoRemove::RecommendsImportant=false autopurge
このコマンドを実行するときは注意してください。 「推奨事項」を満たすために残っているすべてのパッケージが削除されるため、合格するよりも優れている可能性が高くなりますvirtualbox
。
設定するとRecommendsImportant
パッケージfalse
のインストールの対称性が崩れるため、デフォルトでapt
「推奨」インストールを無効にしない限り、設定で設定しないでください(Apt::Install-Recommends
)。一般的なデスクトップ使用の場合、これは一般的に良い考えではありません。