PIYO - Tech & Life -

WindowsAzureCentOSのyumで激ハマリ

WindowsAzure Chef

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のクックブックを作り、再度空の環境で流して成功することを確認できました。