GitLab環境のUbuntuを13.10->14.04にアップデートしたときにはまった話

GitLabを手動でインストールしていたUbuntuを13.10から14.04にアップデートした後、GitLabが立ち上がっていないことに気づいたので解決方法を記載します。

たぶんこの問題で一番厄介なのは、service gitlab startコマンド自体は正常に終了するってところです。
ブートログを見ても特に問題が見つからず、いつの間にかGitLabだけが落ちているように見えてしまいます。

環境

  • GitLab 6.6.5
  • Ubuntu 13.10 -> 14.04

原因

実はかなり単純な問題で、charlock_holmesというgemに必要なlibicuパッケージが更新されたことが原因です。
unicornのエラーログを見てみると、/home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.3/lib/active_support/dependencies.rb:229:in `require': libicui18n.so.48: cannot open shared object file: No such file or directory - /home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/charlock_holmes-0.6.9.4/lib/charlock_holmes/charlock_holmes.so (LoadError)とあります。
ここに出てくるlibicui18n.so.48は、Ubuntu 13.10のlibicu48パッケージでインストールされたファイルですが14.04ではlibicu52となっており、そもそもこのファイルは存在しません。

解決法

charlock_holmes gemを再インストールする必要があります。
このgemはNative extensionが要るのでビルド時にlibicui18n.soのバージョンが固定されてしまいます。
若干面倒ではありますが、GitLabのインストールパス/vendor/bundle以下のcharlock_holmes関連ファイルを削除し、bundle installを再実行することで新しいバージョンのlibicui18n.soを参照するようになります。

まとめ

GitLabのUbuntu 14.04向けパッケージが提供されると幸せになれそうですね。
PPAでも良いけど。

コメントを残す