メインコンテンツへスキップ
  1. Posts/

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

·801 文字·2 分
maruTA / Takayuki MARUYAMA
著者
maruTA / Takayuki MARUYAMA

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