前回の記事にあるように Linux 統合サービスをインストールする際には、カーネルのバージョンと kernel-devel のバージョンを完全に一致させる必要がある。

これは、Linux 統合サービスの Makefile を参照するとわかるのだが、参照ライブラリのパスに "uname -r" コマンドが使用されることにある。

また、当方の CentOS 環境では、最新の kernel-devel をインストールしてもシンボリックリンクの参照先が間違っており、make に失敗していた。

[root@centkun ~]# ls -l /lib/modules/2.6.18-194.el15/build
/lib/modules/2.6.18-194.el15/build -> /usr/src/kernels/2.6.18-194.el15-x86_64
(*) この場合、存在しないパス "/usr/src/kernels/2.6.18-194.el15" へリンクが設定されていた。

バージョンを明示的に指定せず、"yum install -y kernel-devel" を実行し、最新のバージョン "kernel-devel-2.6.18-194.11.1.el5" をインストールしても、シンボリックリンクの参照先は変更されない。

[root@centkun ~]# ls -l /lib/modules/2.6.18-194.el15/build
/lib/modules/2.6.18-194.el15/build -> /usr/src/kernels/2.6.18-194.el15-x86_64

最新のバージョン "kernel-devel-2.6.18-194.11.1.el5" をインストールすると、以下の名前のディレクトリが作成され、このディレクトリ以下にライブラリがインストールされる。

"/usr/src/kernels/2.6.18-194.11.1.el15-x86_64"

この時、シンボリックリンクの参照先を以下のように手動で変更し、Linux 統合サービスのインストールを実行すると正常にインストールされる。

[root@centkun ~]# ln -sf /usr/src/kernels/2.6.18-194.11.1.el15-x86_64 /lib/modules/2.6.18-194.el15/build

ただやはり、カーネルのバージョンと kernel-devel のバージョンを一致させるのことが正統な手順となろう。

コメント (0)

コメントの投稿