はじめに
いろいろな理由からCentOS5系(CentOS5.7)にGitLab5系(GitLab5.2)をインストールしなければならなくなり、だいぶはまったがなんとかインストールすることができた。
GitLabのインストールはいろいろはまりどころがあるが、CentOS6系でなら比較的容易だし最近のUbuntuに入れるならもっと簡単だ。
しかし、CentOS5系に入れようと思うと情報も少なく、いろいろなものを手で入れなければならないのでなかなか大変だ。
出来ればUbuntuかCentOS6に入れることをおすすめしたいが、自分のようにどうしてもCentOS5に入れたい場合に参考にして欲しい。
shellのコマンド入力は「$」から始まっている行で、rootで作業する場所はプロンプトを「#」として表記した。
参考にしたエントリー
GitLab本体以前の環境構築やnginxまわりの設定などはこちらを主に参考にした。
CentOS 5.2 に GitLab をインストール - 人生いきあたりばったりで生きてます@はてな
http://moqada.hatenablog.com/entry/20120503/1335999910
GitLab5のインストールについては公式のインストール文書を主に参考にした。
gitlabhq/doc/install/installation.md at master / gitlabhq/gitlabhq
https://github.com/gitlabhq/gitlabhq/blob/master/doc/install/installation.md
またいろいろなはまりどころについてはこちらも参考になった。
comolog: CentOS 6.4 に GitLab 5.0.0 をインストールしてはまったこと
http://comolog.blogspot.jp/2013/03/centos-64-gitlab-500.html
Ruby-2.0をインストール
少なくともruby-1.9系以上でないと動かないのでruby-2.0系最新をインストールする。
ruby-1.8系が入っているとそちらを使ってしまってうまく動かない例が多いので、問題なければyum removeして2.0系だけにしておく。
ruby-2.0系最新をダウンロード
http://www.ruby-lang.org/ja/downloads/
$ wget ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p247.tar.gz $ tar zxf ruby 2.0.0-p247.tar.gz $ cd ruby 2.0.0-p247 $ ./configure $ make # make install
rubyとgemのバージョン確認
$ ruby -v ruby 2.0.0p247 (2013-06-27 revision 41674) [i686-linux] $ gem-v 2.0.3
(参考)
CentOS 5にruby 2.0.0をインストール - weblog of key_amb
http://keyamb.hatenablog.com/entry/2013/06/11/201827
python-2.7をインストール
python-2.7系でないと動かないので2.7系最新をインストールする。
python-2.7系最新をダウンロード
http://www.python.org/download/releases/2.7/
# yum install tk-devel tcl-devel sqlite-devel bzip2-devel readline-devel ncurses-devel gdbm-devel $ wget http://www.python.org/ftp/python/2.7.5/Python-2.7.5.tgz $ tar zxf Python-2.7.5.tgz $ cd Python-2.7.5 $ ./configure --enable-shared $ make # make install # ln -s /usr/local/lib/libpython2.7.so.1.0 /usr/lib/
pythonのバージョン確認
$ python -V Python 2.7.5
ちなみに bsddb185 と sunaudiodev は使わないので無視した。
(参考)
CentOS5.8にPython2.7.3をインストール - SUGI製作所
http://d.hatena.ne.jp/sugi770/20120528/1338209430
gitを入れる
rpmforgeから入るのだがgitのバージョンは1.7.11
# yum install git
githubへのhttps接続で失敗するのに対処
git clone https://github.com/〜 が証明書関連で失敗するので対処しておく
$ wget --no-check-certificate -P /tmp https://www.digicert.com/testroot/DigiCertHighAssuranceEVRootCA.crt # cat /tmp/DigiCertHighAssuranceEVRootCA.crt >> /etc/pki/tls/certs/ca-bundle.crt
(参考)
GitHubのhttps経由cloneに失敗する場合の対応(EV SSL用ルート証明書追加) - Qiita [キータ]
http://qiita.com/n_morioka/items/ce224813b58b975d39c1
redisを入れる
redisを入れるために先にepelを入れる(これはi386用)
$ wget http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/5/i386/epel-release-5-4.noarch.rpm # rpm -ivh epel-release-5-4.noarch.rpm # yum install redis # /sbin/chkconfig --add redis # /sbin/chkconfig -redis on # /etc/init.d/redis start
rubyのライブラリを入れる
icuというUTFを扱うライブラリが必要だがyumで入るバージョンが古いため手で入れる。
yumで入るicu,libicu-develは3.6でcharlock_holmesで必要なicuのバージョンは4.2以上とのこと。今回は最新のものを入れた。
またcharlock_holmesはバージョン指定をしたほうが良いらしい。
# yum install gcc-c++ libxslt-devel python-setuptools $ wget http://download.icu-project.org/files/icu4c/51.2/icu4c-51_2-src.tgz $ tar zxf icu4c-51_2-src.tgz $ cd icu/source $ ./configure $ make # make install # gem install charlock_holmes --version '0.6.9.4' # easy_install -ZU pygments # gem install bundler
(参考)
unable to compllie 0.6.9.4 on RHEL / Issue #37 / brianmario/charlock_holmes
https://github.com/brianmario/charlock_holmes/issues/37
MySQLの設定
MySQLかPostgreSQLが必要になる。自分はMySQLでインストールした。
# yum install mysql
CREATE USER 'gitlab'@'localhost' IDENTIFIED BY '【パスワード】'; CREATE DATABASE IF NOT EXISTS `gitlabhq_production` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`; GRANT SELECT, LOCK TABLES, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON `gitlabhq_production`.* TO 'gitlab'@'localhost';
gitlab用アカウントの追加
# /usr/sbin/adduser git # su git
ここから先は基本「git」アカウントで作業する。
gitlab-shellのインストール
$ cd /home/git $ git clone https://github.com/gitlabhq/gitlab-shell.git $ cd gitlab-shell $ git checkout v1.4.0 $ cp config.yml.example config.yml (必要に応じconfig.ymlの"gitlab_url"などを編集) $ ./bin/install
gitlabのインストールと設定
$ cd /home/git $ git clone https://github.com/gitlabhq/gitlabhq.git gitlab $ cd gitlab $ git checkout 5-3-stable $ cp config/gitlab.yml.example config/gitlab.yml $ cp config/puma.rb.example config/puma.rb (必要に応じgitlab.ymlの"localhost"やpuma.rbの"workers"などを編集) $ chown -R git log tmp $ chmod -R u+rwX log tmp $ mkdir /home/git/gitlab-satellites $ mkdir tmp/pids tmp/sockets public/uploads $ chmod -R u+rwX tmp/pids tmp/sockets public/uploads $ git config --global user.name "GitLab" $ git config --global user.email "git@localhost" $ cp config/database.yml.mysql config/database.yml $ chmod o-rwx config/database.yml
「database.yml」の"username"と"password"をMySQLに設定したものに変更
username: gitlab
password: "【パスワード】"
gemのインストール
多数のgemがインストールされるので結構時間がかかる。
$ cd /home/git/gitlab $ bundle install --deployment --without development test postgres unicorn aws
データベースの作成
$ bundle exec rake gitlab:setup RAILS_ENV=production
このコマンドの後"yes"と打つとDBが作成されて管理アカウント情報が表示される。
デフォルトでは下記の内容になる。
login.........admin@local.host
password......5iveL!fe
起動スクリプトの設定
$ cd /home/git/gitlab # cp lib/support/init.d/gitlab /etc/init.d/gitlab # chmod +x /etc/init.d/gitlab # chkconfig on gitlab
起動スクリプトを動かすとbundleが見つからない、と言われて動かない。
「/home/git/.bash_profile」のPATHに"/usr/local/bin"を追加
PATH=/usr/local/bin:$PATH:$HOME/bin
(参考)
新さくらVPSへの引越し vol.3 GitLab + Unicorn + Nginxの導入 - yokojiの日記
http://d.hatena.ne.jp/yokoji/20120408/1333879078
GitLabの起動とチェック
# /etc/init.d/gitlab start $ bundle exec rake gitlab:check RAILS_ENV=production
これでGitLab単体でちゃんと動いている状況かを確認出来るので、赤字で問題が出ている点が表示されたところを確認修正する必要がある。
ただしsidekiqは後から起動するからいいらしい。
(参考)
GitLab 5.0 を CentOS 6.4 にインストールする - $web->{note};
http://n8.hatenablog.com/entry/2013/04/24/230340
nginxのインストールと設定
CentOS5のnginxではバージョンが古いためか"eventfd() failed"で失敗してうまく動かない。libaioをインストールしても改善しない。
そのため、リポジトリを追加して最新バージョンをインストールする。
nginxのデフォルト設定ファイルとgitlabの設定ファイルが当たるため、default.confを使ないようにして、gitlabのnginx設定ファイルを"gitlab.conf"とリネームしてコピーして使う。
nginxが/home/git/gitlab以下にアクセス出来るようにするため、gitグループに追加する。
「/etc/yum.repos.d/nginx.repo」を新たに作成
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/rhel/$releasever/$basearch/
gpgcheck=0
enabled=1
# yum install nginx # cp /home/git/gitlab/lib/support/nginx/gitlab /etc/nginx/conf.d/gitlab.conf # mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.disabled # /usr/sbin/usermod -G git nginx
「/etc/nginx/conf.d/gitlab.conf」を編集
listen *:80 default_server;
server_name example.local;
「/etc/nginx/nginx.conf」を編集
user git
にしてnginxをgitの権限で動くようにする。これは今後設定を改善したい。
(参考)
CentOS 5.2 に GitLab をインストール - 人生いきあたりばったりで生きてます@はてな
http://moqada.hatenablog.com/entry/20120503/1335999910
comolog: CentOS 6.4 に GitLab 5.0.0 をインストールしてはまったこと
http://comolog.blogspot.jp/2013/03/centos-64-gitlab-500.html
その他
VMなどでメモリを少なく例えば512Mとかに設定していると動かない。
最低でも1Gは割り当ててないと動かないようだ。
(参考)
Getting 502 Bad Gateway when requesting gitlab / Issue #1527 / gitlabhq/gitlabhq
https://github.com/gitlabhq/gitlabhq/issues/1527
起動
これで http://example.localhost/ にアクセスするとログイン画面が表示される。
うまくいかない場合 /home/git/gitlab/log と /var/log/nginx 以下に関連するログが出るので、その内容から問題点を探していく。