注)LinuxのディストリビューションはRed Hat系(CentOS、Fedora、Scientific 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のインストールは完了。