Virtural Box上のLinuxにGuest Additionsをインストールする前にupdateしてしまったら

注)LinuxディストリビューションRed Hat系(CentOSFedoraScientific Linux)を想定しています。

Virtual BoxにLinuxをインストールしたら、いつもアップデートしてGNUコンパイラカーネルソース等を入れています。

yum install check-update
yum install -y update
yum install gcc gcc-c++ gcc-gfortran
yum install kernel-devel kernel-headers

しかし、updateをやった後にGuest Additionsを入れようとすると、何故かインストールに失敗してしまいます。

いろいろと調べてみましたが、yum install kernel-develでインストールされるバージョンと、今起動しているカーネルのバージョンが異なっているのが原因のようです。(一旦再起動したあとに、yum installをすれば問題ないかもしれない。)しかし、これに気付かず何度もyum installとGuest Additionsのインストールを繰り返してよくわからなくなりました。

解決方法は、起動しているLinuxカーネルのバージョンに合わせたソースをインストールすればOK。

yum install kernel-devel-`uname -r`
yum install kernel-headers-`uname -r`

uname -rコマンドで、カーネルのバージョンを取得して、特定のバージョンのものをインストールするという仕組みです。これですべてのフラグに「OK」が表示されればGuest Additionsのインストールは完了。