Ubuntuでaptitudeを使ってみる

Ubuntu10を触る機会があったので、そのパッケージ管理ツールaptitudeに関するメモ。

debian系OSを触るのは久し振り/Ubuntuは初めてなので、debian系OSでパッケージ管理ツールと言えばapt-get, apt-catchという認識で止まってるのですが、イマドキはaptitudeを使うものらしいです。aptitudeを使ってもバックグラウンドではapt-get, apt-catchが動くそうです。

基本的なコマンドでの違いについては2.2.2. コマンドラインによる基本的なパッケージ管理操作でまとまってます。

で、aptitudeについて。

本当に簡単な使い方だけどインストールの場合、

  1. sudo aptitude updateでデータベースの更新して、
  2. aptitude search 探したいパッケージでパッケージを探して、
  3. aptitude show 確認したいパッケージでパッケージを確認して、
  4. インストールしたいパッケージだったならsudo aptitude install インストールしたいパッケージでインストール

という手順。削除する場合はパッケージの削除だけならsudo aptitude remove パッケージ名、通常なら残る設定ファイルごと削除したい(そのパッケージに関してインストールする前の状態に戻す)場合ならsudo aptitude purge パッケージ名となります。

パッケージの更新って基本的に更新可能パッケージは一括して更新するのがaptitudeの流儀なのかなぁ(何かしらの事情で更新したくないパッケージにはaptitude holdaptitude keepとかで更新対象からはずす)。その辺り、ちょっとまだ分かってません。

aptitudeではパッケージの更新には

  • aptitude safe-upgrade
  • aptitude full-upgrade

の2種類が用意されていて、ググってみる限りでは新バージョンで依存関係がなくなった別パッケージに対する扱いの差のように書かれてるんだけど、manにあるsafe-upgradeに関する説明にIt is sometimes necessary to remove one package in order to upgrade another; this command is not able to upgrade packages in such situations.という一文があって、実際にはsafe-upgradeの場合、新バージョンと旧バージョンの依存関係が変わるとsafe-upgradeではパッケージの更新は行なわれない保守的な挙動をするっぽい。と書いたところで、

"safe-upgrade"/upgrade" と full-upgrade"/"dist-upgrade" の違いは新しいバージョンのパッケージが該当する古いバージョンと異なった依存関係がある場合にのみ起こります。"aptitude safe-upgrade" コマンドは新規のパッケージをインストールも削除もしません。

と書かれていたのをみつけたり。