CentOS 資料一覧
DKMSのビルドで「Your kernel headers for kernel 2.6.32-358.xxx cannot be found at /lib/modules/2.6.32-xxx/build or /lib/modules/2.6.32-358.xxx/source」というエラーが出る
2014/10/04更新
対応バージョン: 6.4
DKMS(Dynamic Kernel Module Support)のビルドで以下のようなエラーが出てビルドが失敗する。
Your kernel headers for kernel 2.6.32-358.el6.x86_64 cannot be found at /lib/modules/2.6.32-358.el6.x86_64/build or /lib/modules/2.6.32-358.el6.x86_64/source.
これは文字通りビルドに必要なヘッダファイルが存在しないというエラーで、インストールしているカーネルのバージョンとヘッダファイルのバージョンが一致していない場合に発生する。
例えば以下のような場合である。
% rpm -qa | grep ^kernel- kernel-firmware-2.6.32-358.el6.noarch kernel-devel-2.6.32-431.23.3.el6.x86_64 kernel-headers-2.6.32-431.5.1.el6.x86_64 kernel-2.6.32-358.el6.x86_64
上記の場合、カーネルのバージョンのほうが古くなっているのでカーネルをバージョンアップさせるかヘッダファイルをバージョンダウンさせる必要がある。
ただ、バージョンダウンは今後継続的にアップデートを続けていく場合はやめたほうがよい。
カーネルおよびヘッダファイルを両方ともアップデートする場合は以下のようにする。
まずカーネルをバージョンアップしたらいったんOSを再起動する。
% sudo yum update kernel-`uname -r` % rpm -qa | grep ^kernel- kernel-devel-2.6.32-431.23.3.el6.x86_64 kernel-firmware-2.6.32-431.29.2.el6.noarch kernel-devel-2.6.32-431.29.2.el6.x86_64 kernel-2.6.32-358.el6.x86_64 kernel-2.6.32-431.29.2.el6.x86_64 kernel-headers-2.6.32-431.29.2.el6.x86_64 % sudo reboot
次にヘッダファイルをアップデートする。
% sudo yum update kernel-headers-`uname -r` % sudo yum update kernel-devel-`uname -r` % rpm -qa | grep ^kernel- kernel-devel-2.6.32-431.29.2.el6.x86_64 kernel-devel-2.6.32-431.23.3.el6.x86_64 kernel-2.6.32-431.29.2.el6.x86_64 kernel-headers-2.6.32-431.29.2.el6.x86_64 kernel-2.6.32-358.el6.x86_64 kernel-firmware-2.6.32-431.29.2.el6.noarch % sudo yum remove kernel-devel-2.6.32-431.23.3.el6.x86_64 % rpm -qa | grep ^kernel- kernel-devel-2.6.32-431.29.2.el6.x86_64 kernel-2.6.32-431.29.2.el6.x86_64 kernel-headers-2.6.32-431.29.2.el6.x86_64 kernel-2.6.32-358.el6.x86_64 kernel-firmware-2.6.32-431.29.2.el6.noarch
これでDKMSのビルドは成功するはずである。