2014-02-11
apt-get/apt-cacheとaptitudeの違い
Ubuntu の情報を調べていると、apt-get と aptitude の両方を見かけることが多いので気になって調べてみた。
全体
- apt-get/apt-cache はコマンドラインのユーザインターフェースのみを提供する
- aptitude はコマンドラインユーザインターフェースに加え、フルスクリーンのインタラクティブなテキストユーザインターフェースを提供する
→ aptitude の方がインタラクティブ性を持っている点で高機能
インストール・アンインストール
- 推奨パッケージの扱いが異なる。apt-get は推奨パッケージを表示するだけに留めるが、aptitude は推奨パッケージもインストールしようとする
- 必要のなくなったパッケージ(孤児パッケージ)の扱いも異なる。apt-get も aptitude もあるパッケージをインストールしたとき、必要なパッケージも自動的にインストールしてくれるが、インストールしたパッケージを削除したとき、apt-get はそのパッケージだけを、aptitude は不要になったパッケージも削除する
- aptitude は依存関係に従って間接的にインストールされたパッケージを不要になった時点で自動的に削除できる
- aptitude は「推奨」のような「依存」よりも弱い関係にあるパッケージを一緒にインストールすることができる
→ 推奨パッケージの扱いと、不要になったパッケージの扱いが異なる。aptitude の方が気が効くかんじかな。
メモリ消費量
- aptitude の方が apt-get より便利にパッケージの依存関係を解消してくれるようだが、メモリの消費量が多く、重い
- apt-get/apt-cache はメモリ消費量は少なく、実行速度が早い。一方 aptitude はメモリ消費量が多く、実行速度も遅い
→ apt-get/apt-cache の方がメモリ消費量が少なくて、高速
検索機能
- apt-cache はパッケージ名や説明に関して標準の regex を使った検索機能を提供する
- aptitude はパッケージメタデータ全てに関する拡張された regex を使った探索機能を提供する
→ aptitude の方が高機能な検索機能を持つ
複数バージョン管理
- apt-get と apt-cache は/etc/apt/preferences を使って複数のバージョンのパッケージを管理できるが、非常に面倒
- aptitude は/etc/apt/preferences を使わずに複数のバージョンのパッケージを直観的に管理できる
→ 複数バージョン管理をしたいなら aptitude を使おう
得意分野
- apt-get はリリース間のような大掛かりなシステムアップグレードに最適
- aptitude はインストールされたパッケージを検査したり利用可能なパッケージを探索したりするような日常のインタラクティブなパッケージ管理に最適
→ これは使う場面でちゃんと使い分けたいところ
その他
aptitude はパッケージインストールの記録(ログ)を残す
→ ログ機能いいね
移行はできるか?(今まで apt だったけど、aptitude に移行したい。とか)
aptitude は内部で apt-get を呼び出している。なので移行は容易。
混在しても大丈夫か?
- lenny 以降の apt は拡張管理情報を扱えるため、混在しても問題ない
- aptitude の拡張情報を apt で共有するためには一度 aptitude を実行しておく必要がある
今まで apt-get/apt-cache 使ってたけど、aptitude にしてもいいかなぁというかんじがしてきた。 インストール時のログと不要パッケージの自動削除が魅力的だなあ。