centos 7 部署gitlab和汉化【第一步】

centos 7 部署gitlab

官方安装手册
1.安装配置依赖项

如想使用Postfix来发送邮件,在安装期间请选择'Internet Site'. 您也可以用sendmai或者 配置SMTP服务 并 使用SMTP发送邮件. 在 Centos 6 和 7 系统上, 下面的命令将在系统防火墙里面开放HTTP和SSH端口.
sudo yum install curl policycoreutils openssh-server openssh-clients
sudo systemctl enable sshd
sudo systemctl start sshd
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld

2.添加GitLab仓库,并安装到服务器上(安装最新版)

curl -sS http://packages.gitlab.cc/install/gitlab-ce/script.rpm.sh | sudo bash
sudo yum install gitlab-ce

如果你不习惯使用命令管道的安装方式, 你可以在这里下载 安装脚本 或者 手动下载您使用的系统相应的安装包(RPM/Deb) 然后安装,如果配置较低的(低于1核2G的建议不要安装最新版)

curl -LJO https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-XXX.rpm
# 下面是一个示例安装
curl -LJO https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-9.0.3-ce.0.el7.x86_64.rpm
rpm -i gitlab-ce-XXX.rpm
# 下面是一个示例安装
rpm -i gitlab-ce-9.0.3-ce.0.el7.x86_64.rpm

3.启动GitLab

sudo gitlab-ctl reconfigure

4.如果是服务器装,进入ip第一次,会输入admin密码.用户名是root

Omnibus 安装汉化

汉化官方教程

1.使用 marbleqi 制作的汉化增量补丁包

注使用该汉化补丁包需要重新配置编译资源文件

sudo gitlab-ctl reconfigure

2.手动导出汉化补丁包汉化

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

# 查看版本
sudo cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

# 设置本班变量,之后会用到
gitlab_version=$(sudo cat /opt/gitlab/embedded/service/gitlab-rails/VERSION)

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

3.克隆版本库

# 克隆汉化版本库(最新版本的)
git clone https://gitlab.com/xhang/gitlab.git
# 如果你上面是安装指定版本请克隆分支
git clone -b 9-0-stable-zh https://gitlab.com/xhang/gitlab.git
# 如果已经克隆过,则进行更新
git fetch

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

# cd到克隆的gitlab项目
cd gitlab
# 导出当前版本(因为前面有这只过变量,所以会自动替换为) #git diff v9.0.0 v9.0.0-zh > ../9.0.0-zh.diff
git diff v${gitlab_version} v${gitlab_version}-zh > ../${gitlab_version}-zh.diff
# 如果失败自己手动执行
git diff v9.0.0 v9.0.0-zh > ../9.0.0-zh.diff

此时,你在上一级目录下面会看到一个9.0.0-zh.diff的文件

4.删除汉化文件(防止之前汉化过)

sudo rm -rf /opt/gitlab/embedded/service/gitlab-rails/config/locales/*zh*

5.开始新的汉化

# 返回到上一级
cd ../
# 停止 gitlab
sudo gitlab-ctl stop
# 如果gitlab_version变量不存在,则默认取服务器gitlab当前版本
sudo patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 < ${gitlab_version:=cat /opt/gitlab/embedded/service/gitlab-rails/VERSION}-zh.diff

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

有可能会出现以下错误
1.sudo: patch: command not found

yum -y install patch 

修改配置

// 修改时区
gitlab_rails['time_zone'] = 'Asia/Shanghai'

6.重启服务

# 开启服务
sudo gitlab-ctl start
# 执行重新配置命令
sudo gitlab-ctl reconfigure

如果汉化失败.请重装gitlab(注意数据备份)

gitlab减少运行内存

修改配置文件/etc/gitlab/gitlab.rb

能减少一些gitlab的内存使用,但是gitlab的内存使用量还是比较大

减少 postgresql 数据库缓存

postgresql['shared_buffers'] = "256MB"

减少sidekiq的并发数

sidekiq['concurrency'] = 1

减少worker数量

默认是3个worke,这里改成一个.重新解析配置然后重启服务

unicorn['worker_processes'] = 1
unicorn['worker_timeout'] = 60

重新解析配置

gitlab-ctl reconfigure

遇到的问题

policycoreutils-python 被 gitlab-ce-10.0.0-ce.0.el7.x86_64 需要

[root@VM_0_11_centos src]# rpm -i gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm
警告:gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm: 头V4 RSA/SHA1 Signature, 密钥 ID f27eab47: NOKEY
错误:依赖检测失败:
        policycoreutils-python 被 gitlab-ce-10.0.0-ce.0.el7.x86_64 需要
yum install policycoreutils-python