CentOS への FUSE の導入と DKMS

ちょっと unionfs が欲しくなったので yum search したところ、rpmforge から fuse-unionfs パッケージが提供されていたので yum installFUSE を使うのは今回が初めてなので、備忘的にメモ。
インストールしたところ、そのものズバリの unionfs というコマンドが導入されたので早速実行してみると、「fuse モジュールがないので modprobe しろ」みたいなエラーが発生。「modprobe って、なんか久しぶりに聞いたなぁ」と思いつつ、

# modprobe fuse

が、「そんなモジュールねーよ」的なつれない返事。確かに、rpm q fuse -l とか見てみても、それらしきものは皆無。
「そういうのは依存関係に入れといてよぉ」と思いつつ yum search fuse すると、どうやら dkms-fuse パッケージがそれっぽい。dkms ってのは初耳だが、とりあえずインストールしてみて驚いた。
DKMS、なかなかやるな!!
一言で言えば、“カーネルモジュール専用のソースパッケージシステム”。種々のカーネルモジュールのソースを dkms.conf という設定ファイルと合わせてパッケージングしておくと、dkms コマンド一発でビルドから modprobe までが完了する。現在稼働中のカーネルを自動検出してくれるのでチマチマした設定が不要((もちろん、dkms-fuse みたいなパッケージが提供されている場合だけだが。))な点もいい。
最高なのは、/etc/init.d/dkms_autoinstaller。システムが起動する際に DKMS 対応のカーネルモジュールを自動的にロードしてくれる。必要ならばビルドもしてくれる。これでもう、カーネルをアップデイトしたり変更したりした際にカーネルモジュールのことを気にする必要はない。全てが自動。メンテナンスフリー。
玉に瑕だったのは、yum install dkmskernel-devel がインストールされてしまったこと。僕は kernel-xen を使っているので、kernel-xen-devel がインストールされなければいけない((dkms が「インストールされているカーネルに対応するヘッダが見つからない」といってエラーになってしまう。))。でもまあ、「kernel-xen がインストールされていれば kernel-xen-devel も必要だが、そうでなければ kernel-xen-devel はなくてもいい」っていう依存関係は RPM では表現できないよね。