環境
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