Ubuntu 16.x 安装Gitlab

GitLab 是一个用于仓库管理系统的开源项目。使用Git作为代码管理工具,并在此基础上搭建起来的web服务。 在GitLab的官方网站上面对Ubuntu的支持也是很好的,有比较详尽的安装指南。 在介绍postfix的地方有少部分的坑,本文抛砖引玉,解决一些我遇到的坑。 本文主要针对Ubuntu 16.04,介绍如何安装Gitlab。其他的Ubuntu可以作为一个参考。

安装需要的库和软件

1
sudo apt-get install curl openssh-server ca-certificates postfix

postfix用来发送邮件,由于需要发送验证邮件,所以需要装这个,这里官方推荐postfix。

添加Gitlab的包并进行安装

1
2
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo apt-get install gitlab-ce

除了上述安装脚本的方式,你还可以下载直接安装。

1
2
curl -LJO https://packages.gitlab.com/gitlab/gitlab-ce/packages/ubuntu/xenial/gitlab-ce-XXX.deb/download
dpkg -i gitlab-ce-XXX.deb

配置和启动Gitlab

1
sudo vim /etc/gitlab/gitlab.rb
  1. 修改外部链接
1
external_url 'http://192.168.2.248:10080'
  1. 修改时区
1
gitlab_rails['time_zone'] = 'Asia/Shanghai'
  1. 邮箱设置
1
2
3
4
5
6
### Email Settings
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = 'xxx@your_mail.com'
gitlab_rails['gitlab_email_display_name'] = 'Gitlab'
gitlab_rails['gitlab_email_reply_to'] = 'xxx@your_mail.com'
# gitlab_rails['gitlab_email_subject_suffix'] = ''
  1. 邮箱服务
1
2
3
4
5
6
7
8
9
10
11
12
13
### GitLab email server settings
###! Docs: https://docs.gitlab.com/omnibus/settings/smtp.html
###! **Use smtp instead of sendmail/postfix.**

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "xxx@your_mail.com"
gitlab_rails['smtp_password'] = "your_password"
gitlab_rails['smtp_domain'] = "exmail.qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
  1. nginx监听端口
1
2
nginx['listen_addresses'] = ['192.168.2.248']
nginx['listen_port'] = 10080

配置完成后,执行下面命令使变更生效。

1
sudo gitlab-ctl reconfigure

访问Gitlab

在浏览器输入 http://192.168.2.248:10080 即可访问。首次登录需要为root管理员设置密码。

汉化教程

请先使用官方包安装或升级完成,确认当前版本。

1
sudo cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

假设当前版本为v9.0.0,并确认汉化版本库是否包含该版本的汉化标签(-zh结尾),也就是是否包含v9.0.0-zh。如果版本相同,首先在本地clone仓库。

1
2
3
4
# 克隆汉化版本库
git clone https://gitlab.com/xhang/gitlab.git
# 如果已经克隆过,则进行更新
git fetch

然后比较汉化标签和原标签,导出patch用的diff文件。

1
2
# 导出9.0.0 版本的汉化补丁
git diff v9.0.0 v9.0.0-zh > ../9.0.0-zh.diff

然后上传9.0.0-zh.diff文件到服务器。

1
2
3
# 停止 gitlab
sudo gitlab-ctl stop
sudo patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 < 9.0.0-zh.diff

确定没有.rej文件,重启GitLab即可。

1
sudo gitlab-ctl start

执行重新配置命令

1
sudo gitlab-ctl reconfigure

如果汉化中出现问题,请重新安装Gitlab(注意备份数据)。

参考官网