2015年10月29日木曜日

CentOS6.2 に OpenvSwitch2.3.2

rpmbuildではまったので記録を残す。

結論:実行中のKernelと、Kernel-devel、Kernel-headerはバージョンを統一しよう。

知っている人からすれば当たり前のことかもしれないが、かなりはまったので。。。

Openvswitchのインストール自体で参考にしたのはここら辺
http://momijiame.tumblr.com/post/80779102981/centos-65-%E3%81%AB-open-vswitch-210-%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B

#rpmbuild -bb rhel/openvswitch.spec

は、問題なく通るんですが、

#rpmbuild -bb rhel/openvswitch-kmod-rhel6.spec


でこけるという状態を3日くらい維持していました。

1)環境

  • ニフティクラウドにCentOS6.2のインスタンスを作成。
  • yum update を実行
2)やりたいこと
  • OpenvSwitchの最新版をインストールする。
3)うまくいくまで
紹介されている手順に従って、以下を実行。

#yum install wget gcc make automake rpm-build redhat-rpm-config 
#yum install openssl-devel kernel-devel libtool

ここで、kernel-develとkernel-headers(はgccの依存のkernel-firmwareの依存だったかな)が入ってくる。
  • updatesリポジトリの最新版として、2.6.32-573.7.1が導入される。


この状態でカーネルモジュールをrpmbuildすると失敗するので、以下の手順でkernel-*をダウングレードする。

#yum erase kernel-*

  • gccとか依存するものもアンインストールされます。
kernel-*を個別にCentOSのアーカイブにあるrpmからインストール

#yum localinstall http://vault.centos.org/6.2/os/x86_64/Packages/kernel-headers-2.6.32-220.el6.x86_64.rpm

#yum localinstall http://vault.centos.org/6.2/os/x86_64/Packages/kernel-devel-2.6.32-220.el6.x86_64.rpm

#yum install gcc
  • 依存関係でkernel-*がリストアップされた場合は、上記にならってrpmからインストールする。

再度、目的のrpmbuildを実行

ヒントをくれたのは、会社で隣に座っている人でした。さすが。

おしまい