SSブログ

GitLabを入れてみる(見事失敗) [徒然]

どこぞで貧者のGitHubと失礼なこと言われてたGitLabですが、確かに年間50万円(ぐらい?)を出してくれない会社は貧乏と言われても仕方ないかもしれません。まぁ自社開発しない会社は必要ないかもしれませんけど。

http://gitlab.org/
https://github.com/gitlabhq/gitlabhq


あ、RubyGemに入ってた。ためしに入れてみることにした。
ダラダラ書いていくけど、失敗します。というか、マニュアルの設定はPostgreSQLで根本的に間違ってそうなんだもん。ちょっと困るよね。MySQLに戻るのも何だしさ。でも、問題はちょっと見えてる感じ。


 
ちなみにサーバはUbuntu12.10かなんかだった。

$ sudo gem1.9.1 search gitlab -r

ありますね。入れちゃいますね。

$ sudo gem1.9.1 install gitlab

ん~。入れたはいいが、どう動かすんだろ。
というか、他に必要なのが、Ubuntu/Debian、ruby 1.9.3、MySQL、git、gitlab-shell、redisという事らしい。

ここに従って入れるか。サーバがUbuntuで良かったぁ。
https://github.com/gitlabhq/gitlabhq/blob/5-0-stable/doc/install/installation.md


sudo apt-get install -y build-essential zlib1g-dev libyaml-dev libssl-dev libgdbm-dev libreadline-dev libncurses5-dev libffi-dev curl git-core openssh-server redis-server postfix checkinstall libxml2-dev libxslt-dev libcurl4-openssl-dev libicu-dev

Postfixの設定とか全然わからないんだけど。まぁ適当でいいや。

pythonとRuby1.9は入ってるからいいか。

ユーザーを作るとは、これはまた大仰な。

sudo adduser --disabled-login --gecos 'GitLab' git


ちょっと待って。これってGemで入れる方法とは違うのかもしれない。


MySQLじゃなくても良さそうだ。PostgreSQLでも良さそうなのでそっちの設定でやってみる。

sudo curl --output /etc/init.d/gitlab https://raw.github.com/gitlabhq/gitlab-recipes/master/init.d/gitlab
sudo chmod +x /etc/init.d/gitlab

sudo update-rc.d gitlab defaults 21


ん?RubyGemのgitlabはgitlab本体じゃないかも。
今頃気付いた。GitLabのAPIとか書いてあるよ。

http://rubygems.org/gems/gitlab

うぁ最悪だな。そりゃ、あるはずのファイルがないはずだよ。
今から省いた処理を入れ込まないとダメだ。あーめんどくさー。はじめから再出発で。



うむ?なんか入れ忘れてる?
$ ./bin/install 
./bin/install:3: undefined method `require_relative' for main:Object (NoMethodError)

$ ruby1.9.1 ./bin/install

で回避。というか、もうruby1.8とか全然要らないんですけど。削っちゃいたいなぁ。


結局、最初からやるも、そのままやったらDBにアクセスできない事が分かる。

https://github.com/gitlabhq/gitlabhq/blob/5-0-stable/doc/install/databases.md#postgresql

これってユーザーとロールは、gitじゃなきゃいけないような気がするんだけど、ロールはgitlabとかで作っちゃってる。そのままやると最後のチェックするところのコマンドで、peerなんとかのエラーが出る。これはそもそも使われているgitlabユーザーで入る事が出来ないのでエラーになっているので、下のように変更しないといけないかも。

# Login to PostgreSQL
sudo -u postgres psql -d template1

# Create a user for GitLab. (change $password to a real password)
template1=# CREATE USER git WITH PASSWORD '$password';

# Create the GitLab production database & grant all privileges on database
template1=# CREATE DATABASE gitlabhq_production OWNER git;

# Quit the database session
template1=# \q

# Try connecting to the new database with the new user
sudo -u git -H psql -d gitlabhq_production

そうすれば、Linuxのユーザー名と、Postgresのユーザー名やロール名の整合性が合うはず。実際エラーも出なくなった。正しいとは限らないけどね。

むー変なエラーが出たけど、chmodするだけでいいか。
$ sudo -u gitlab -H bundle exec rake gitlab:env:info RAILS_ENV=production
Rails Error: Unable to access log file. Please ensure that /home/git/gitlab/log/production.log exists and is chmod 0666. The log level has been raised to WARN and the output directed to STDERR until the problem is fixed.
Creating scope :closed. Overwriting existing method MergeRequest.closed.


production.logをchmodするも、またエラーが

rake aborted!
PG::Error: ERROR:  relation "projects" does not exist
LINE 5:              WHERE a.attrelid = '"projects"'::regclass
                                        ^
:             SELECT a.attname, format_type(a.atttypid, a.atttypmod),
                     pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod
              FROM pg_attribute a LEFT JOIN pg_attrdef d
                ON a.attrelid = d.adrelid AND a.attnum = d.adnum
             WHERE a.attrelid = '"projects"'::regclass
               AND a.attnum > 0 AND NOT a.attisdropped
             ORDER BY a.attnum


gitlabの内部的な事情っぽいなぁ。ググっても直接的なところは出てこない。
ユーザー名とかロール名で、gitだったりgitlabだったりして整合性がないので困るんだよね。今度はユーザーとロールをすべてgitlabでやってみて、ダメだったら他の方法を探してみる。

#なんか色々弊害がありそうなので、Ruby1.8は削除する事にしました。(sudo aptitude remove ruby1.8)

タグ:Ruby Rails3
コメント(0) 
共通テーマ:パソコン・インターネット

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。