Gitlab是基于Ruby on Rails的,安装和配置非常麻烦,不过有傻瓜安装包,https://about.gitlab.com/downloads/,或者,https://bitnami.com/stack/gitlab/installer。但是这两个包都是英文界面的,gitlab把界面提示写在每一个rb文件里了,所以,要用中文版的不能像redmine那样设定一下就行了。
幸好,还是有无私的大侠把gitlab给汉化了:https://larryli.cn/gitlab,代码地址:https://gitlab.com/larryli/gitlab。
所以本文要做的事情是,不安装傻瓜包,从源码安装gitlab。
gitlab官方有一个说明文档:,本文基本按照这个文档来的。所不同的是,本文用的是apache,不是nginx。
安装步骤有:
1. 依赖包
2. ruby
3. 用户创建
4. 数据库初始化
5. redis
6. gitlab源码
7. apache
本文可能会用到VPN连接,在命令行下创建VPN连接的方法如下:
sudo apt-get install pptp-linux
sudo pptpsetup --create VPN名称 --server 服务器地址 --username 用户名 --password 密码 [--encrypt] --start
以上命令会创建一个设备,如果没有其他的拨号设备,这个设备会是ppp0,用ifconfig可以看到,“--encrypt”选项可选,因为有的服务器不支持,会提示MPPE required but peer negotiation failed,创建时带上“--start”选项可以看到连接的情况。
pptpsetup创建的VPN连接重启后会失效,如果想在不重启的情况下删除VPN连接:
sudo pptpsetup --delete VPN名称
创建VPN连接后还需要使能,并且添加到路由列表:
sudo pon VPN名称
sudo route add default dev ppp0
禁用VPN连接的方法是:
sudo poff VPN名称
下面开始正文:
1. 依赖包
我装的是Ubuntu server 14.04,安装的时候可以选是否安装LAMP(Linux+Apache+MySQL+PHP),如果没装,可以用下面的命令装:
sudo tasksel install lamp-server
安装的时候会提示输入MySQL的root密码,下面要用。
接下来是依赖关系:
sudo apt-get install flex bison ruby build-essential zlib1g-dev libyaml-dev libssl-dev libgdbm-dev libreadline-dev libncurses5-dev libffi-dev curl openssh-server redis-server checkinstall libxml2-dev libxslt-dev libcurl4-openssl-dev libicu-dev logrotate Python-docutils pkg-config cmake libkrb5-dev nodejs git-core
注意:这里面装了ruby,应该是1.9.1版本的,gitlab需要2.0以上的ruby,但是安装2.0以上的ruby需要低版本的ruby,所以我们先装上,一会儿卸掉。另外,ubuntu 14.04的软件库里有ruby 2.0,但是实测不能用,所以还是从源码装ruby吧。
2. ruby
下载,编译,安装(安装前删掉ruby 1.9.1):
curl -L --progress | tar xz
cd ruby-2.1.5
./configure --prefix=/usr --disable-install-rdoc
make
sudo apt-get autoremove ruby
sudo make install
然后安装bundler:
sudo gem install bundler --no-ri --no-rdoc
3. 用户创建
为gitlab创建一个git用户:
sudo adduser --disabled-login --gecos 'GitLab' git
4. 数据库初始化
官方指南用的是PostgreSQL,不过官方也有MySQL的说明:
sudo apt-get install -y mysql-server mysql-client libmysqlclient-dev
mysql -u root -p
输入MySQL的root密码登陆,然后:
mysql> CREATE USER 'git'@'localhost' IDENTIFIED BY '$password';
记得把上面这句的"$password"换成实际的密码,然后:
mysql> SET storage_engine=INNODB;
mysql> CREATE DATABASE IF NOT EXISTS `gitlabhq_production` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;
mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, LOCK TABLES ON `gitlabhq_production`.* TO 'git'@'localhost';
mysql> \q
5. Redis
Redis貌似是用来存key的数据库吧,不知道,反正按步骤安装:
sudo apt-get install redis-server
sudo cp /etc/redis/redis.conf /etc/redis/redis.conf.orig
sed 's/^port .*/port 0/' /etc/redis/redis.conf.orig | sudo tee /etc/redis/redis.conf
echo 'unixsocket /var/run/redis/redis.sock' | sudo tee -a /etc/redis/redis.conf
echo 'unixsocketperm 770' | sudo tee -a /etc/redis/redis.conf
sudo service redis-server restart
sudo usermod -aG redis git
6. gitlab源码
gitlab源码默认是安装在/home/git/gitlab,如果要更改,请参照官方手册。获取中文版源码的过程如下:
cd /home/git
sudo -u git -H git clone https://gitlab.com/larryli/gitlab.git
不知道是因为GFW还是什么,git clone这个版本库可慢可慢了,我用了VPN,速度会快点。
git clone完以后可以checkout你想要的版本,在本文编写的时间(2015年4月22日),可以:
sudo -u git -H git checkout 7-7-zh
然后配置源码