- この記事の情報源
- automatic packageとは?
- automatic packageを除去するコマンド
- automatic package を指定するコマンド
- インストールされた理由を調べる(aptitude why)
- deborphanとdebfoster
この記事の情報源
buster用のDebian Administrator's Handbookを元にして、この記事を書いています。
https://debian-handbook.info/
本記事では、以下「buster用ハンドブック」と記述します。
automatic packageとは?
依存関係を満たすためだけにインストールされたパッケージのことを automatic package と呼びます。
automatic packageを除去するコマンド
あるパッケージを削除した後、もう必要のない automatic package を除去するには次のコマンド(どちらか1つ)を使います。
apt autoremove apt-get autoremove
busterハンドブックによると、aptitudeは automatic package を見つけると自動的に削除するので、aptitudeには上記コマンドが存在しないそうです。
automatic package を指定するコマンド
必要なくなった時、自動的に削除されるように、自分が直接必要としていないパッケージを automatic としてマークしておきましょうとbusterハンドブックに書かれていますが、ドライブの容量がひっ迫していなければ自分はやらなさそうな気がしなくもありません(ぼそっ)。
パッケージを automatic としてマークするには以下のコマンドがあります(どちらか1つ)。
apt-mark auto パッケージ名 aptitude markauto パッケージ名
なお、反対のコマンドは以下のとおりです(どちらか1つ)。
apt-mark manual パッケージ名 aptitude unmarkauto パッケージ名
インストールされた理由を調べる(aptitude why)
ある automatic package が何故システムに存在するのか調べるには、aptitude why コマンドを使います。なお、aptやapt-getにはこれに相当するコマンドが無いようです。
(busterハンドブックに載っていた使用例)
$ aptitude why python-debian
(実行結果)
i aptitude Suggests apt-xapian-index p apt-xapian-index Depends python-debian (>= 0.1.14)
deborphanとdebfoster
不要なパッケージを除去するのに使えるコマンドとして、deborphan、debfosterというものがあるようです。どちらも使ったことが無いので、busterハンドブックやmanページを斜め読みしてアバウトに理解したことをメモしておきます。
deborphanは libsセクションや oldlibsセクションを調べて、他のパッケージが依存していないパッケージを探してくれるようです。ちなみに、-d オプションを付けて実行すると、インストールされている全てのパッケージと依存しているパッケージを表示してくれます。
debfosterは(依存関係を満たすために自動的にインストールされたパッケージではなく)ユーザーが直接要求してインストールしたパッケージの一覧を保持しています。debfosterがこの一覧に記録していないパッケージを見つけた場合、もしくは、かつては依存関係を形成していたものの今はもう依存関係が無くなり孤立していると認識した場合、このパッケージをどうするかユーザーに尋ねてくるようです。