GitLabで始めるプライベートリポジトリのある生活
どこでもいつでもGitと一緒。
GitLabはオープンソースのGitHubクローンで、Amazon EC2やさくらVPSなどにプライベートリポジトリを立てて使えます。
プライベートリポジトリのある生活はかなり快適です。非公開のコードや各サーバのetc-filesなどをプライベートリポジトリに入れておき、GitHubのようなWeb UIで管理できるのは便利です。Eclipseの場合は公開リポジトリとプライベートリポジトリを組み合わせて使うと便利です。
GitLabのインストールはちょっと手間がかかります。
The installation consists of 6 steps:
https://github.com/gitlabhq/gitlabhq/blob/master/doc/installation.md
- Install packages / dependencies
- Install ruby
- Install gitolite
- Install and configure Gitlab.
- Start the web front-end
- Start a Resque worker (for background processing)
Amazon EC2 (micro instance) ではメモリが厳しかったため、自宅サーバに構築して使っています。さくさく動いています。
GitLabをGentoo Linuxに構築する
基本的にはドキュメントの手順に従います。はまった点をメモで残しておきます。
依存パッケージ
GitLab自体はドキュメントの通りにgit cloneします。
以下のパッケージはPortageから入れました。
他のパッケージはbundle installでOKです。ただし、charlock_holmesのビルドが失敗したのでリンカオプションを一時的に変更しました*1。
リポジトリはどこにあるの?
Gentooの場合は /var/lib/gitolite/repositories にリポジトリがあります。gitoliteでpush & pullできることを確認しておきましょう。
rubypythonの問題
Pygmentsによるsyntax highlightingがうまくいかないようです。log/production.logに以下が出ていました。
ActionView::Template::Error (undefined method `Py_IsInitialized' for RubyPython::Python:Module):
とりあえずPythonライブラリの検索パスを修正したら解決しました。
# gitlab/vendor/bundle/ruby/1.9.1/gems/rubypython-0.5.3/lib/rubypython/pythonexec.rb def find_python_lib # By default, the library name will be something like # libpython2.6.so, but that won't always work. libbase = "#{FFI::Platform::LIBPREFIX}#{@basename}" libext = FFI::Platform::LIBSUFFIX #libname = "#{libbase}.#{libext}" libname = 'libpython2.7.so'
*1:詳しくは https://github.com/brianmario/charlock_holmes/issues/10 を参照してください。