自動削除されないaptの依存関係を説明するにはどうすればよいですか?
パッケージlibudev1:i386
が私のシステムにインストールされています。
$ dpkg -l | grep libudev1:i386
ii libudev1:i386 245.4-4ubuntu3.2 i386 libudev shared library
自動削除されません。
$ sudo apt autoremove
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
手動でインストールのマークが付けられていません。
$ apt-mark showmanual | grep libudev1 | wc -l
0
aptitude
なぜインストールされているのかわかりません。
$ aptitude why --show-summary libudev1:i386
Packages requiring libudev1:i386:
どちらもしませんapt-rdepends
。
apt-rdepends --reverse --state-follow=Installed --state-show=Installed --follow=Depends,Recommends,Suggests libudev1:i386
Reading package lists... Done
Building dependency tree
Reading state information... Done
libudev1:i386
では、なぜlibudev1:i386
自動削除されるのではなく、インストールされたままになるのでしょうか。この質問は特定のケースに関するものではありません。自動削除されるのではなく、一部のパッケージがインストールされたままになる理由を説明する信頼できる方法を学びたいと思います。
Ubuntu20.04を使用しています。パッケージは、インストールしてから削除した後の残りの依存関係lmms:amd64
です。私は片付ける方法を知っています。
回答
私があなたの質問を読み始めたとき、それはDebian 9.1の変種かもしれないと思いました:apt-get autoremoveは依存関係を削除しませんが、あなたのapt-rdepends
コマンドはそうではないことを示しています。
ただし、apt show libudev1:i386
パッケージが自動削除の候補ではない理由を明らかにします。
Package: libudev1:i386
Version: 245.4-4ubuntu3.2
Priority: required
Section: libs
Source: systemd
[...]
優先度は「必須」であるため、一度インストールすると、自動削除の候補にはなりません。(このlibudev1
構成はUbuntu固有であり、Debianパッケージの優先順位は「オプション」です。)
一般的な質問に答えるために、パッケージが手動でインストールされた、必須、優先度が「重要」または「必須」である、他のインストールされたパッケージに依存、推奨、または提案されている場合、パッケージは自動削除の候補にはなりません。 (削除から保護されているなど、現在のカーネル)、または保持されています。これapt-pkg/depcache.ccはaptソースコードで確認できます。