CentOS5系でGitLab5.2にアップデートするとbundle installでこける

環境

CentOS 5.6
GitLab 5.1 (アップデート前)

問題

GitLabのバージョンを5.1から5.2にアップデートすると、
bundle install時にcharlock_holmsのインストールエラーが発生する。

原因

CentOS5系の標準リポジトリで提供されているICUは3.6だが、
GitLab 5.2が使用するcharlock_holms 0.6.9.4が要求するICUは4.2以降なので、
bundle install時にエラーが発生した。

何故GitLab5.2で発生したか

charlock_holms 0.6.9.3から、ICU 4.2で組み込まれたStringByteSinkを使うようになった。
GitLab 5.1ではcharlock_holms 0.6.9を使用していたが、
GitLab 5.2からcharlock_holms 0.6.9.4を使用するようになったので、
今回のアップデート時に問題が発生した。

対応

古いICUを削除

sudo yum remove libicu

StringByteSinkが組み込まれたICUのソースを取得し展開

cd /tmp
wget http://download.icu-project.org/files/icu4c/4.2.1/icu4c-4_2_1-src.tgz
tar xvf icu4c-4_2_1-src.tgz

コンパイルしてインストール

cd icu/source
./configure
make
sudo make install

後はbundle installして、エラー無くインストールされることを確認

bundle install --without development test postgres --deployment