ruby1.9*-full不要! Ruby 1.9.1をDebianにインストールする

ruby1.9.1パッケージがDebian/sidに入った。いくつか考え込んでいるうちに作業を進めてもらってしまうことになってしまい、実質的に何もお手伝いできなかった。いくつか必要そうなパッチが出ているように思うので、そちらで協力していくのと、ruby1.9.2パッケージの準備のほうで、今度こそ貢献できるようにと考えている。

さて、ruby1.9.1パッケージの登場によりDebian/sidでも(ようやく)手軽にRuby 1.9.1を使えるようになった。とはいえ、DebianのRubyパッケージはいくつかのサブパッケージに分割され提供されている。そのためフルセットの環境を構築するのはめんどくさい…… と思われがちである。しかしながら、いまどきのaptitudeを使えば以下のコマンドラインで一括してインストールが可能だ。もうruby1.9.1-fullなんていうパッケージはいらない

$ sudo aptitude install '?source-package(^ruby1\.9\.1$)'

ちなみにruby1.9.1-elispパッケージを除くなら以下のようになる。

$ sudo aptitude install '?source-package(^ruby1\.9\.1$)!~n^ruby1\.9\.1-elisp$'

もちろんaptitudeの検索式はいろいろなところで使える。aptitude searchならリストアップが可能だし、aptitude removeやaptitude purgeに使えばまとめて削除ができる。ぱぱっとソラで書けるかというとそうでもなくて、ちょっと手間取りそうな記述ではある。ただ、そういうことができるということを覚えておくと何かのときに役立つだろう。

ruby*-fullのような依存関係を提供するメタパッケージはある面で便利なのはわかる。ただ柔軟性はまったくないので使える場面はかなり限られると思う。実際のところ最初のインストールのときだけあれば十分だという人が多いのではないだろうか(もっというなら、インストール後は自動的に消えてくれと思う人だっているだろう)。その点、上に書いたような方法であれば(あるいはgrep-dctrlを使うような方法であれば)応用が効いて使いでがあるはずだ。