- 安装软件包及解决依赖项
- Ruby环境
- Go
- 系统用户
- 数据库(Mysql/Postgresql)
- Redis
- Gitlab-CE
- Nginx
- 非必要条件:点击链接加入群【GitLab交流群】
1.安装软件包及解决依赖项
Debian系统默认是没有sudo
的.确保你的系统已经更新到最新状态,并安装sudo
.
#run as root!
apt-get update -y
apt-get upgrade -y
apt-get install sudo -y
- 安装系统必要的软件包:
sudo apt-get install -y 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 nodejs
如果你要用Kerberos
来验证用户,需要另外安装libkrb5-dev
:
sudo apt-get install libkrb5-dev
如果你不知道Kerberos是干嘛使得,就不用安装上面的libkrb5-dev了.
- 安装git
# 安装Git
sudo apt-get install -y git-core
#检查git的版本,确保git版本不小于1.7.10
git --version
如果系统包里的git版本过旧,可以删除系统自带的,然后用源码编译最新的git.
# 删除git
sudo apt-get remove git-core
# 安装依赖
sudo apt-get install -y libcurl4-openssl-dev libexpat1-dev gettext libz-dev libssl-dev build-essential
#下载并编译源码
cd /tmp
curl -L --progress https://www.kernel.org/pub/software/scm/git/git-2.4.3.tar.gz | tar xz
cd git-2.4.3/
./configure
make prefix=/usr/local all
# 安装到/usr/local/bin目录
sudo make prefix=/usr/local install
# 当编辑config/gitlab.yml(step 5),修改git路径为/usr/local/bin/git
注意:为了让Gitlab拥有发送通知邮件的功能,你需要安装一个邮件服务.在Debian系统上默认自带一个
exim4
的附件,但是Ubuntu上并没有附带这个.Ubuntu上我们可以安装Postfix
来发送邮件.
sudo apt-get install -y postfix
然后选择Internet Site
回车后再确认下主机名.
2.Ruby环境
在Gitlab生产环境使用Ruby版本管理工具RVM,rbenv或者chruby常常会带来很多疑难杂症.比如Gitlab-shell版本管理器调用OpenSSH的功能以防止越过ssh对仓库进行pull和push操作.而前面提到的三个版本管理器不支持这样的功能,所以我们强烈建议大家按照下面的方式来安装Ruby.
如果系统上存在旧的Ruby1.8,先删除掉:
sudo apt-get remove ruby1.8
下载Ruby源码,编译安装:
mkdir /tmp/ruby && cd /tmp/ruby
# 这里替换官方文档的下载地址为ruby.taobao.com提供的镜像地址
curl -O --progress https://ruby.taobao.org/mirrors/ruby/ruby-2.2.2.tar.gz
tar xzf ruby-2.2.2.tar.gz
cd ruby-2.2.2
./configure --disable-install-rdoc
make
sudo make install
国内使用Ruby的Gem和Bundler必须要做的事情:
# 修改gem安装源为淘宝源
$ sudo gem sources --add https://ruby.taobao.org/ --remove https://rubygems.org/
$ sudo gem sources -l
*** CURRENT SOURCES ***
https://ruby.taobao.org
安装Bundler Gem:
sudo gem install bundler --no-ri --no-rdoc
# 修改bundler的源为淘宝源 注:下面一句因为系统还未创建git用户,需要先执行“4.系统用户”的指令后才可以继续
sudo -u git -H bundle config mirror.https://rubygems.org https://ruby.taobao.org
3.Go
从Gitlab8.0开始,Git的HTTP请求由gitlab-git-http-server来处理.我们需要Go编译器来安装gitlab-git-http-server.下面一系列的指令都将假定你用的是64位的Linux系统.你也可以在GoLang官方网站下载其他平台的Go编译器.
#注:下面地址有问题,下载后会是个空包。可以访问https://golang.org/dl/这个网站,手动下载相应版本的go
#另外需要注意的是,去上面那个网站下载时候要注意先查看一下自己机器是32位还是64位Ubuntu,具体方法可以用$uname -a 查看
mkdir /tmp/go && cd /tmp/go
curl -O --progress http://www.golangtc.com/static/go/go1.5.1/go1.5.1.linux-amd64.tar.gz echo '46eecd290d8803887dec718c691cc243f2175fe0 go1.5.1.linux-amd64.tar.gz' | shasum -c - && \ sudo tar -C /usr/local -xzf go1.5.1.linux-amd64.tar.gz
sudo ln -sf /usr/local/go/bin/{go,godoc,gofmt} /usr/local/bin/
rm go1.5.1.linux-amd64.tar.gz