CentOS への FUSE の導入と DKMS
ちょっと unionfs が欲しくなったので yum search
したところ、rpmforge から fuse-unionfs
パッケージが提供されていたので yum install
。FUSE を使うのは今回が初めてなので、備忘的にメモ。
インストールしたところ、そのものズバリの 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 dkms
で kernel-devel
がインストールされてしまったこと。僕は kernel-xen
を使っているので、kernel-xen-devel
がインストールされなければいけない((dkms
が「インストールされているカーネルに対応するヘッダが見つからない」といってエラーになってしまう。))。でもまあ、「kernel-xen
がインストールされていれば kernel-xen-devel
も必要だが、そうでなければ kernel-xen-devel
はなくてもいい」っていう依存関係は RPM では表現できないよね。