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でも良いけど。