Windows Azureで提供されているOpenLogicのCentOS6.3では、VirtualBoxやAWSで動いたChefのCookbook達が全然動かなくてとても困りました。
gccをインストールできない
yumでgccをインストールするためにはkernel-headers
が必要となります。通常のCentOSでは何も問題なくいけるのですが、設定でkernel-* が除外されているせいで依存関係を解消できず失敗します。
そこで /etc/yum.confを開き、次のように変えてしまいます。
exclude=kernel* # <- ここを
# exclude=kernel* # <- このようにコメントアウトしてしまう
これでkernel系の依存関係のせいで失敗することはなくなるはずです。
依存するzlibのせいでMySQL5.5をyumでインストールできない
CentOS6.3のyumでMySQLをインストールすると5.1系がインストールされますが、yumにremiリポジトリを追加することで同様のコマンドで5.5系をインストールできるようになります。
ところが、AzureのCentOS6.3では依存関係を解消できずに次のようなエラーとなってしまいます。
Requires: libz.so.1(ZLIB_1.2.0)
このOpenLogicのCent6.3に入っているzlibは1.2.3-27というバージョンなのですが、どうもこれがよくないらしいです。 というわけで、ここRPM CentOS 6 zlib 1.2.3 x86_64 rpmあたりでより新しいバージョンを探して入れてみることにしました。
$ sudo rpm -Uvh --force \
ftp://ftp.muug.mb.ca/mirror/centos/6.4/os/x86_64/Packages/zlib-devel-1.2.3-29.el6.x86_64.rpm \
ftp://ftp.muug.mb.ca/mirror/centos/6.4/os/x86_64/Packages/zlib-1.2.3-29.el6.x86_64.rpm
こうすることでzlibが更新されremiのMySQL5.5をインストールできるようになります。
これらの変更点をazureという名前でChefのクックブックを作り、再度空の環境で流して成功することを確認できました。