文章更新记录
20180303: 添加了GitLab更新部分的内容;修改了命令中的版本号;使用Markdown重写,对于代码的应用显示效果更好。
一. GitLab的安装
GitLab中文官网地址:https://www.gitlab.com.cn/
使用官方推荐的Omnibus 包安装方法
添加 GitLab 镜像源并安装
curl -sS http://packages.gitlab.com.cn/install/gitlab-ce/script.deb.sh | sudo bash
sudo apt-get install gitlab-ce
配置并启动 GitLab
sudo gitlab-ctl reconfigure
二. GitLab的更新
首次进行更新需要添加以下命令,否则更新会出错
sudo touch /etc/gitlab/skip-auto-migrations
更新 GitLab
# 停止 GitLab 的运行
gitlab-ctl stop
# 更新 GitLab
sudo apt-get update && sudo apt-get install gitlab-ce
更新后的 GitLab 可能需要重新进行汉化
之后可以重新启动 GitLab
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
三. GitLab中文配置
获取GitLab中文版本:
GitLab 8.8之前 https://gitlab.com/larryli/gitlab
GitLab 8.8之后 https://gitlab.com/xhang/gitlab
请先使用官方包安装或升级完成,确认当前版本。
sudo cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
确认汉化版本库是否包含该版本的汉化标签(-zh结尾)。
如果汉化版本库中包含相同的版本就可以进行汉化,首先在本地 clone 或 fetch 汉化版本库仓库。
# 克隆汉化版本库
git clone https://gitlab.com/xhang/gitlab.git
# 更新汉化版本库
cd gitlab && git fetch
然后比较汉化标签和原标签,导出 patch 用的 diff 文件。
# 在 GitLab 文件夹下导出新版本的汉化补丁
cd gitlab
git diff v10.5.2 v10.5.2-zh > ../v10.5.2-zh.diff
然后使用 v10.5.2-zh.diff 文件对服务器进行更新。
# 停止 GitLab
sudo gitlab-ctl stop
# 回到包含 v10.5.2-zh.diff 文件的目录下,对 GitLab 进行更新
sudo patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 < v10.5.2-zh.diff
确定没有 .rej 文件,重启 GitLab 即可。
更新后再次汉化如果出现 The next patch would create the file XXXXX whitch is already exist 提示,选择 y 确认即可。
sudo gitlab-ctl start
执行重新配置命令
sudo gitlab-ctl reconfigure
如果汉化中出现问题,请重新安装 GitLab(注意备份数据)。
四. 其他问题
1.GitLab头像无法正常显示
原因是gravatar被墙,解决办法是编辑/etc/gitlab/gitlab.rb,将
#gitlab_rails['gravatar_plain_url'] ='http://gravatar.duoshuo.com/avatar/%{hash}?s=%{size}&d=identicon'
修改为:
gitlab_rails['gravatar_plain_url'] ='http://gravatar.duoshuo.com/avatar/%{hash}?s=%{size}&d=identicon'
然后在命令行执行:
sudo gitlab-ctl reconfigure
sudo gitlab-rake cache:clear RAILS_ENV=production
2.配置网址
打开/etc/gitlab/gitlab.rb
,将external_url ='http://git.example.com'
修改为自己的IP地址:http://xxx.xx.xxx.xx
,,
sudo gitlab-ctl reconfigure
3.更改仓库位置
首先查看磁盘挂载情况
df -hl
fdisk -lu
查看一个磁盘的UUID并挂载磁盘
blkid /dev/xvde1
/etc/fstab文件需要添加的内容
# xvde1
UUID=0b9c0e4b-e731-47b6-880d-c6c94b70ce4f /data ext3 defaults 0 2
停止相关数据连接服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
进行数据迁移,例如gitlab代码数据默认目录 /var/opt/gitlab/git-data/repositories
,迁移目的地为 /data
cp -rp /var/opt/gitlab/git-data/repositories/ /data
#or
cp -rp /var/opt/gitlab /data
修改gitlab配置文件
vim /etc/gitlab/gitlab.rb
指定数据目录
git_data_dir "/data"
git_data_dirs({"default" = "/data"})
# git_data_dirs({ "default" => { "path" => "/data/gitlab/git-data", 'gitaly_address' => 'unix:/data/gitlab/gitaly/gitaly.socket' } })
执行重新配置命令
gitlab-ctl reconfigure
重启 GitLab 即可。
sudo gitlab-ctl start
4.重新安装修复GitLab
重新安装包
sudo apt-get install gitlab-ce --reinstall