记一次基于 Ubuntu 18.04 系统下的 gitlab 搭建
准备工作
- 事先装好
vim
是明智的选择 - 很多包都依赖ruby,先安装好少踩坑:
sudo apt-get install ruby
并且改变 gems 和 bundler 默认源1
2gem sources --add https://mirrors.tuna.tsinghua.edu.cn/rubygems/ --remove https://rubygems.org/
bundle config mirror.https://rubygems.org https://mirrors.tuna.tsinghua.edu.cn/rubygems - 利用清华大学镜像更新
/etc/apt/sources.list
,避免初相“无法定位软件包”的问题
安装 gitlab
步骤
安装依赖包
1 | sudo apt-get install curl openssh-server ca-certificates |
注:执行完成后,出现邮件配置,按需选择
安装 gitlab-ce
官方的建议是使用脚本直接执行安装
1 | sudo curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash |
若官方版不行,利用[清华大学镜像](https://mirror.tuna.tsinghua.edu.cn/help/gitlab-ce/)来进行主程序的安装
首先信任 GitLab 的 GPG 公钥
1
curl https://packages.gitlab.com/gpg.key 2> /dev/null | sudo apt-key add - &>/dev/null
使用root用户修改配置文件
1
vi /etc/apt/sources.list.d/gitlab-ce.list
添加内容:
deb https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu xenial main
安装 gitlab-ce
1
2
3
4sudo apt-get update
# 下面的 ip 为本机 ip 或指向本机 ip 的域名,可以带端口
sudo EXTERNAL_URL="https://10.10.28.100" apt-get install gitlab-ce
修改相关配置
1 | sudo vim /etc/gitlab/gitlab.rb |
其他的基本上不需要修改,主要是配置邮件(阿里云企业邮箱为例,yourdomain
表示你的企业邮箱域名, yourname
表示你的邮箱名)
1 | # 邮箱设置 |
启动sshd和postfix服务
1 | sudo service sshd start |
添加防火墙规则
这里使用的是80端口,可以是其他端口
1 | sudo iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT |
重新配置并启动各项服务
1 | sudo gitlab-ctl reconfigure |
检查GitLab是否安装好并且已经正确运行
1 | sudo gitlab-ctl status |
如果得到类似下面的结果,则说明GitLab运行正常
1 | run: alertmanager: (pid 18343) 15s; run: log: (pid 18080) 28s |
浏览web页面并设置密码
访问https://10.10.28.100/
(ip为你设置的那个)
- 帐号:
root
- 密码:
5iveL!fe
测试邮件发送功能
1 | sudo gitlab-rails console |
一般来说,若出现类似如下结果,则说明配置成功,可以去查看有没有收到邮件
若是报错: EOFError: end of file reached
,基本上是因为配置端口和是否使用 ssl 配置不匹配导致的:
- 使用25端口, 就不要配置 ssl 相关项目
- 使用465,应该将以下设置好
1
2
3
4gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['smtp_openssl_verify_mode'] = 'none'
设置开机启动
1 | # 开机启动 |
汉化(仅供参考)
汉化法一
注意版本号
1 | git clone https://gitlab.com/xhang/gitlab.git |
汉化法二
进入gitlab-rails
目录
1 | cd /opt/gitlab/embedded/service/ |
- 下载社区提供的汉化包,在
https://gitlab.com/xhang/gitlab/
中找到相应的汉化分支。1
sudo wget -cO gitlab-10.1_zh.tar.gz https://gitlab.com/xhang/gitlab/repository/archive.tar.gz?ref=10-1-stable-zh
- 解压包
1
sudo tar -zxvf gitlab-10.1_zh.tar.gz
- 停止 GitLab 服务
1
sudo gitlab-ctl stop
- 备份 gitlab-rails 目录,该目录下主要是web应用部分,也是当前项目仓库的起始版本,也是汉化包要覆盖的目录。
1
sudo tar -zcvf /opt/gitlab/embedded/service/gitlab-rails-bak.tar.gz gitlab-rails
- 将解压后的汉化补丁覆盖原来的
1
sudo cp -rf gitlab-10-1-stable-zh/* gitlab-rails/
- 启动服务
1
sudo gitlab-ctl start
- 重新执行配置命令
1
sudo gitlab-ctl reconfigure
常用 gitlab 命令
- 重新配置:
gitlab-ctl reconfigure
- 启动:
gitlab-ctl start
- 重新启动:
gitlab-ctl restart
- 停止:
gitlab-ctl stop
- 查看状态:
gitlab-ctl status
- 实时日志查看:
gitlab-ctl tail
- 检查报错:
gitlab-rake gitlab:check
完全卸载删除 gitlab
停止 gitlab
1
gitlab-ctl stop
卸载 gitlab(注意这里写的是 gitlab-ce)
1
2
3
4
5# Debian/Ubuntu
sudo dpkg -r gitlab-ce
# Redhat/Centos
rpm -e gitlab-ce查看 gitlab 进程
1
ps aux | grep gitlab
杀掉第一个进程(就是带有好多………….的进程,18777 是进程 id)
1
kill -9 18777
杀掉后,在
ps aux | grep gitlab
确认一遍,还有没有 gitlab 的进程,如有,重复第 4 步删除所有包含 gitlab 文件
1
find / -name gitlab | xargs rm -rf
常用 Linux 命令
压缩解压缩
- 压缩:
tar -zcvf archive_name.tar.gz directory_to_compress
- 解压缩到当前目录:
tar -zxvf archive_name.tar.gz
- 解压缩到指定目录:
tar -zxvf archive_name.tar.gz -C /tmp/extract_here/
查找内容中带有关键字的文件
- 在根目录中找:
find / -type f -name "*" | xargs grep "keyword"
- 在当前目录中找:
find . -type f -name "*" | xargs grep "keyword"
查看包的版本
- 查询你的机器安装了哪些版本:
dpkg -l '包名'
- 查询远程库存在哪些版本:
apt-cache madison "包名"
- 安装指定某个版本:
sudo apt-get install 包名=版本号
apt-get update相关
- 忽略指定包:apt-mark hold xxx
- 取消忽略指定包:apt-mark unhold xxx
tips
linux 使用命令 find / -name ***
查找文件的时候会遇到以下报错
find: '/run/user/1000/gvfs': Permission denied
明明用的是 root 用户,为什么权限不足呢?
官方说这是一个 bug——bug#615848. 原因是 FUSE 文件系统和权限不配的问题,全局搜索时碰到它就会退出报错。
其实这个目录是空的,查不查都没关系。所以,以下解决方式比较简直暴
1 | umount /run/user/1000/gvfs |
注: 在卸载 gitlab 然后再次安装执行sudo gitlab-ctl reconfigure
的时候往往会出现:ruby_block[supervise_redis_sleep] action run
,会一直卡无法往下进行!
解决方案:
按住
CTRL+C
强制结束运行:
sudo systemctl restart gitlab-runsvdir
再次执行:
sudo gitlab-ctl reconfigure
解决方案来源:https://gitlab.com/gitlab-org/omnibus-gitlab/issues/160#note_24078285
或者直接另起一个命令行执行sudo systemctl restart gitlab-runsvdir