GitLabを入れてみる(見事失敗) [徒然]
どこぞで貧者のGitHubと失礼なこと言われてたGitLabですが、確かに年間50万円(ぐらい?)を出してくれない会社は貧乏と言われても仕方ないかもしれません。まぁ自社開発しない会社は必要ないかもしれませんけど。
http://gitlab.org/
https://github.com/gitlabhq/gitlabhq
あ、RubyGemに入ってた。ためしに入れてみることにした。
ダラダラ書いていくけど、失敗します。というか、マニュアルの設定はPostgreSQLで根本的に間違ってそうなんだもん。ちょっと困るよね。MySQLに戻るのも何だしさ。でも、問題はちょっと見えてる感じ。
ちなみにサーバはUbuntu12.10かなんかだった。
ありますね。入れちゃいますね。
ん~。入れたはいいが、どう動かすんだろ。
というか、他に必要なのが、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
Postfixの設定とか全然わからないんだけど。まぁ適当でいいや。
pythonとRuby1.9は入ってるからいいか。
ユーザーを作るとは、これはまた大仰な。
ちょっと待って。これってGemで入れる方法とは違うのかもしれない。
MySQLじゃなくても良さそうだ。PostgreSQLでも良さそうなのでそっちの設定でやってみる。
ん?RubyGemのgitlabはgitlab本体じゃないかも。
今頃気付いた。GitLabのAPIとか書いてあるよ。
http://rubygems.org/gems/gitlab
うぁ最悪だな。そりゃ、あるはずのファイルがないはずだよ。
今から省いた処理を入れ込まないとダメだ。あーめんどくさー。はじめから再出発で。
うむ?なんか入れ忘れてる?
で回避。というか、もうruby1.8とか全然要らないんですけど。削っちゃいたいなぁ。
結局、最初からやるも、そのままやったらDBにアクセスできない事が分かる。
https://github.com/gitlabhq/gitlabhq/blob/5-0-stable/doc/install/databases.md#postgresql
これってユーザーとロールは、gitじゃなきゃいけないような気がするんだけど、ロールはgitlabとかで作っちゃってる。そのままやると最後のチェックするところのコマンドで、peerなんとかのエラーが出る。これはそもそも使われているgitlabユーザーで入る事が出来ないのでエラーになっているので、下のように変更しないといけないかも。
そうすれば、Linuxのユーザー名と、Postgresのユーザー名やロール名の整合性が合うはず。実際エラーも出なくなった。正しいとは限らないけどね。
むー変なエラーが出たけど、chmodするだけでいいか。
production.logをchmodするも、またエラーが
gitlabの内部的な事情っぽいなぁ。ググっても直接的なところは出てこない。
ユーザー名とかロール名で、gitだったりgitlabだったりして整合性がないので困るんだよね。今度はユーザーとロールをすべてgitlabでやってみて、ダメだったら他の方法を探してみる。
#なんか色々弊害がありそうなので、Ruby1.8は削除する事にしました。(sudo aptitude remove ruby1.8)
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)
コメント 0