相同点:二者都是基于web的Git仓库,在很大程度上GitLab是仿造GitHub来做的,他们都提供了分享开源项目的平台,
为开发团队提供了存储、分享、发布和合作开发项目的中心化云存储的场所。
不同点:
1、GitHub如果使用私有仓库,是需要付费的,GitLab可以在上面搭建私人的免费仓库
2、GitLab让开发团队对他们的代码仓库拥有更多的控制,相对于GitHub,它有不少的特色:
(1)允许免费设置仓库权限
(2)允许用户选择分享一个project的部分代码
(3)允许用户设置project的获取权限,进一步提升安全性
(4)可以设置获取到团队整体的改进进度
(5)通过innersourcing让不在权限范围内的人访问不到该资源
还有一点就是国内访问github比较慢
首先在网站gitlab/gitlab-ce - Packages · packages.gitlab.com下载相应软件安装包,我选择的是第二个。
点进去,如下图,
执行命令,安装相关依赖,
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
执行命令,下载安装gitlab软件
sudo yum install gitlab-ce-14.7.5-ce.0.el7.x86_64
安装过程需要确认,输入yes即可,安装完成后,应该会有如下图
1.执行命令
vim /etc/gitlab/gitlab.rb
将外部地址修改为IP地址加端口,类似这样192.168.1.10:9000,默认为8080,有可能被占用,这里也可以不加端口
修改完后,使用新的配置文件再配置一遍,配置文件的其它地方不用修改,默认即可。
执行命令
gitlab-ctl reconfigure
首次执行过程中,往往会出现:ruby_block[supervise_redis_sleep] action run,会一直卡无法往下进行!
这是ctrl + C终止命令执行。
执行命令
sudo systemctl restart gitlab-runsvdir
再次执行命令
sudo gitlab-ctl reconfigure
执行完毕后,重启服务
gitlab-ctl restart
等待执行完成后,在浏览器输入ip + 端口,出现如下画面,等一会可能会比较慢
如果登陆不上,可能与防火墙有关,可以关闭试试
systemctl stop firewalld.service #关闭防火墙
firewall-cmd --state #查看防火墙状态
或者开发端口:
firewall-cmd --zone=public --add-port=8889/tcp --permanent # 开放8889端口
firewall-cmd --zone=public --remove-port=8889/tcp --permanent #关闭8889端口
firewall-cmd --reload # 配置立即生效
输入root和密码,密码的位置在/etc/gitlab/initial_root_password文件中
复制出密码,登陆进去添加用户和密码,此文件24后会删除
查看端口是否被占用:
netstat -anp |grep 9000
至此,gitlab服务器搭建成功
有可能出现初始密码无法使用的情况,这里我们需要重置root密码
gitlab-rake "gitlab:password:reset[root]"
输入两次密码即可,密码并不回显,请注意
[root@localhost gitlab]# gitlab-rake "gitlab:password:reset[root]"
Enter password:
Confirm password:
Password successfully updated for user with username root.
停止gitlab服务
gitlab-ctl stop
卸载gitlab
rpm -e gitlab-ce
查看gitlab进程
ps -ef | grep gitlab
守护进程是runsvdir -P /opt/gitlab/service log,使用kill PID终止该进程
删除相关文件
find / -name *gitlab*|xargs rm -rf
find / -name gitlab|xargs rm -rf
所有命令都在root用户下执行