Ubuntuでaptitudeを使ってみる
Ubuntu10を触る機会があったので、そのパッケージ管理ツールaptitudeに関するメモ。
debian系OSを触るのは久し振り/Ubuntuは初めてなので、debian系OSでパッケージ管理ツールと言えばapt-get, apt-catchという認識で止まってるのですが、イマドキはaptitudeを使うものらしいです。aptitudeを使ってもバックグラウンドではapt-get, apt-catchが動くそうです。
基本的なコマンドでの違いについては2.2.2. コマンドラインによる基本的なパッケージ管理操作でまとまってます。
で、aptitudeについて。
本当に簡単な使い方だけどインストールの場合、
- sudo aptitude updateでデータベースの更新して、
- aptitude search 探したいパッケージでパッケージを探して、
- aptitude show 確認したいパッケージでパッケージを確認して、
- インストールしたいパッケージだったならsudo aptitude install インストールしたいパッケージでインストール
という手順。削除する場合はパッケージの削除だけならsudo aptitude remove パッケージ名、通常なら残る設定ファイルごと削除したい(そのパッケージに関してインストールする前の状態に戻す)場合ならsudo aptitude purge パッケージ名となります。
パッケージの更新って基本的に更新可能パッケージは一括して更新するのがaptitudeの流儀なのかなぁ(何かしらの事情で更新したくないパッケージにはaptitude holdやaptitude 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" コマンドは新規のパッケージをインストールも削除もしません。
と書かれていたのをみつけたり。