首先安装必须的一些依赖
mportant; padding: 0px !important; border-width: 0px !important; border-style: initial !important; border-color: initial !important; min-width: auto !important; border-radius: 0px !important; background: none !important; inset: auto !important; float: none !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; vertical-align: baseline !important; box-sizing: content-box !important; min-height: auto !important; color: rgb(175, 175, 175) !important;" width="35" height="NaN"> 1 2 | sudo apt- get update sudo apt- get install -y curl openssh-server ca-certificates |
安装Postfix发送通知邮件
sudo apt-get install -y postfix
运行命令后,会出现一样邮件配置项,选择Interent site这项,然后一路回车键(使用左右键和回车键选择确定、取消,弹出列表选项的时候,选择 Internet Site)
官方源安装gitlab
官方源网站安装gitlab(如果官网无法安装,请参照下边步骤,利用国内安装源进行安装)
sudo curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bashsudo apt-get install gitlab-ce
国内源安装gitlab
信任 GitLab 的 GPG 公钥(配置git的公钥,如果不信任公钥,无法配置清华大学的镜像路径,切记):
1 | curl https: //packages.gitlab.com/gpg.key 2> /dev/null | sudo apt-key add - &>/dev/null |
配置镜像路径(由于git官网是国外的服务器,所以配置清华大学的镜像路径)
切换到root用户,打开下面文件;将下边的信息添加到文档中(详见Gitlab Community Edition 镜像使用帮助)
vi /etc/apt/sources.list.d/gitlab-ce.list --打开文件 deb https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu xenial main --添加国内安装源
gitlab安装包下载地址:https://packages.gitlab.com/gitlab/gitlab-ce
国内源安装 gitlab-ce
1 | sudo apt- get update --更新sudo apt- get install gitlab-ce --安装 |
执行配置
1 | sudo gitlab-ctl reconfigure |
注1:
在执行配置的时候sudo gitlab-ctl reconfigure的时候往往会出现:ruby_block[supervise_redis_sleep] action run,出现会一直卡无法往下进行!
解决方案:
1、按住CTRL+C强制结束;
2、运行:sudo systemctl restart gitlab-runsvdir
3、再次执行:sudo gitlab-ctl reconfigure
注2:(自己遇到的坑,在网上查的资料得知,)
在ruby_block动作运行一步会出现超时
运行处理程序:运行gitlab-ctl reconfigure时出错:ruby_block [使用GitLab授权Grafana](监视:: grafana第95行)发生错误:Mixlib :: ShellOut :: CommandTimeout:命令在600秒后超时:命令超出允许执行时间,进程终止
----开始输出/ opt / gitlab / bin / gitlab-railsRunner -e production'app = Doorkeeper :: Application.where(redirect_uri:“ http://xx.xx.xx.xx/ -/ grafana / login / gitlab”,名称:“ GitLab Grafana”)。first_or_create;放入app.uid.concat(“”).concat(app.secret);' ---- STDOUT:
STDERR:
---- / opt / gitlab / bin / gitlab-railsRunner的最终输出-e production'app = Doorkeeper :: Application.where(redirect_uri:“ http://xx.xx。 xx.xx /-/ grafana / login / gitlab”,名称:“ GitLab Grafana”)。first_or_create;放入app.uid.concat(“”).concat(app。
----运行/ opt / gitlab / bin / gitlab-railsRunner
-e production'app = Doorkeeper :: Application.where(redirect_uri:“ http://xx.xx.xx.xx/-/grafana/login/ gitlab”,名称:“ GitLab Grafana”)。first_or_create;放入app.uid.concat(“”).concat(app.secret);'
2.sudo gitlab-rake gitlab:env:info正常返回虽然有时上面一步出现超时,测试发现已经可以通过浏览器访问Gitlab服务器,并且可以进入到注册页面,但提交注册时出现返回超时而用户可以成功注册的情况。配置信息,页面返回虽然超时但操作可以正常完成,这也是我判断可能是服务运行过缓慢导致超时的原因。
3.在登录时反复超时,无法正常使用。将服务器内存配置替换为2GB后解决超时问题
注3:如果遇到这种报错信息的话,应该是git用户权限的问题。git用户需要对包含.ssh目录的文件夹(包含父文件夹)执行权限。
Running handlers: There was an error running gitlab-ctl reconfigure: service[grafana] (dynamically defined) had an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '1'---- Begin output of /opt/gitlab/embedded/bin/chpst -u root:root /opt/gitlab/embedded/bin/sv restart /opt/gitlab/service/grafana ----STDOUT: timeout: run: /opt/gitlab/service/grafana: (pid 5165) 33s, got TERM STDERR:---- End output of /opt/gitlab/embedded/bin/chpst -u root:root /opt/gitlab/embedded/bin/sv restart /opt/gitlab/service/grafana ----Ran /opt/gitlab/embedded/bin/chpst -u root:root /opt/gitlab/embedded/bin/sv restart /opt/gitlab/service/grafana returned 1
即使/var/opt/gitlab/.ssh的所有者和用户组都是git,由于父权限,它也不能到这级目录执行shell命令。即,给 /var/opt/gitlab/目录执行权限
chmod +x /var/opt/gitlab/chmod +x /var/opt/chmod +x /var/
如果执行不成功,就用sudo命令执行
启动gitlab
1 | sudo gitlab-ctl start |
浏览器进行访问
1 | http://电脑的IP地址 |
第一次进入,需要输入管理员账号的密码,以方便后期的管理。
输入好之后,就可以以管理员进行登录,账号是root,密码就是你刚才输入的密码。
至此,gitlab已安装成功,之后的使用方式,和github没有太大差异,就不进行介绍了
扩展
修改gitlab的端口和地址
编辑gitlab.rb
1 | sudo gedit /etc/gitlab/gitlab.rb |
将如下数据进行更改
1 | external_url 'http://gitlab.example.com' |
比如说更改为
1 | external_url 'http://192.168.39.100:7800' |
其中,192.168.39.100是安装了gitlab的这台电脑的IP,端口只要不冲突就行
更改之后,需要执行如下代码
1 | sudo gitlab-ctl reconfigure |
最后,在浏览器中访问gitlab,发现已修改成功,需要使用192.168.39.100:7800
来访问
其他
gtilab部分命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 开启 sudo gitlab-ctl start 停止 sudo gitlab-ctl stop 重启 sudo gitlab-ctl restart 查看状态 sudo gitlab-ctl status 确认配置(修改配置后,必须执行) sudo gitlab-ctl reconfigure 查看日志 sudo gitlab-ctl tail 查看 GitLab 版本号 cat /opt/gitlab/embedded/service/gitlab-rails/VERSION |
卸载gitlab
1 2 3 4 5 6 7 | sudo gitlab-ctl uninstall sudo dpkg -r gitlab-ce sudo rpm -e gitlab-ce reboot(重启) |