恥は/dev/nullへ by 初心者

プログラミング初心者がのろのろと学んだことをつづっています♪

Debianメモ(3) automatic package

  

 この記事の情報源

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がこの一覧に記録していないパッケージを見つけた場合、もしくは、かつては依存関係を形成していたものの今はもう依存関係が無くなり孤立していると認識した場合、このパッケージをどうするかユーザーに尋ねてくるようです。