Git介绍+Gitlab安装

前言

Git诞生于2005年,大神Linus的作品,Github诞生于2008年,没有Git就没有GitHub,Github已成为全球最大的代(tong)码(xing)开(jiao)源(you)社(wang)区(zhan),注册免费用户即可在Github上免费托管开源代码,如需建立私有仓库必须付费。那么Gitlab又是什么?

GitLab和GitHub一样属于第三方基于Git开发的作品,免费且开源(https://github.com/gitlabhq/gitlabhq 基于MIT协议),与Github类似,可以注册用户,任意提交你的代码,添加SSHKey等等。不同的是,GitLab是可以部署到自己的服务器上,数据库等一切信息都掌握在自己手上,适合团队内部协作开发,你总不可能把团队内部的智慧总放在别人的服务器上吧?简单来说可把GitLab看作个人版的GitHub。

从代码私有性方面来看,有时公司并不希望员工获取到全部的代码,这个时候GitLab无疑是更好的选择(私服)。

但对于开源项目而言,GitHub依然是代码托管的首选。

Git相比SVN的优点

1、git是分布式的,svn不是
git分布式本地就可以用,可以随便保存各种历史痕迹,不用担心污染服务器,连不上服务器也能提交代码、查看log。
2、git分支和svn的分支不同
分支在SVN中实际上是版本库中的一份copy,而git一个仓库是一个快照,所以git 切换、合并分支等操作更快速。
3、git有一个强大的代码仓库管理系统 - gitlab
可以很方便的管理权限、代码review,创建、管理project

下面主要讲解GitLab

GitLab介绍

GitLab:是一个基于Git实现的在线代码仓库托管软件,你可以用gitlab自己搭建一个类似于Github一样的系统,一般用于在企业、学校等内部网络搭建git私服。
功能:Gitlab 是一个提供代码托管、提交审核和问题跟踪的代码管理平台。对于软件工程质量管理非常重要。
版本:GitLab 分为社区版(CE) 和企业版(EE)。
配置:建议CPU2核,内存2G以上。

 

Gitlab的服务构成:

Nginx:静态web服务器。
gitlab-shell:用于处理Git命令和修改authorized keys列表。(Ruby)
gitlab-workhorse: 轻量级的反向代理服务器。(go)

GitLab Workhorse是一个敏捷的反向代理。它会处理一些大的HTTP请求,比如文件上传、文件下载、Git push/pull和Git包下载。其它请求会反向代理到GitLab Rails应用,即反向代理给后端的unicorn。

logrotate:日志文件管理工具。
postgresql:数据库。
redis:缓存数据库。
sidekiq:用于在后台执行队列任务(异步执行)。(Ruby)
unicorn:An HTTP server for Rack applications,GitLab Rails应用是托管在这个服务器上面的。(Ruby Web Server,主要使用Ruby编写)

GitLab安装

可以直接参照官网,选择对应操作系统进行安装,我使用的是centos7  https://about.gitlab.com/install

一、安装并配置必要的依赖
1:安装ssh
sudo yum install -y curl policycoreutils-python openssh-server
2:将SSH服务设置成开机自启动
sudo systemctl enable sshd
3:启动SSH服务
sudo systemctl start sshd
4:添加http服务到firewalld,pemmanent表示永久生效,若不加--permanent系统下次启动后就会失效。
sudo firewall-cmd --permanent --add-service=http
5:重启防火墙
sudo systemctl reload firewalld 
-------------centos7下的防火墙操作命令-----------------
查看防火墙规则
firewall-cmd --list-all
# 查询端口是否开放
firewall-cmd --query-port=8080/tcp
# 开放80端口
firewall-cmd --permanent --add-port=80/tcp
# 移除端口
firewall-cmd --permanent --remove-port=8080/tcp
#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload
-------------------------------------------
 

注:centos出现“FirewallD is not running”怎么办。
systemctl start firewalld开启防火墙,没有任何提示即开启成功。
systemctl status firewalld查看firewalld状态,显示running即已开启了

二、安装Postfix
1:安装Postfix以发送通知邮件
sudo yum install postfix
2:将postfix服务设置成开机自启动
sudo systemctl enable postfix
3:启动postfix
sudo systemctl start postfix


启动postfix服务时可能会报“Job for postfix.service failed because the control process exited with error code. See "systemctl status postfix.service" and "journalctl -xe" for details“ ”错误
解决方法:修改 /etc/postfix/main.cf的设置  
1、inet_protocols = ipv4  
2、inet_interfaces = all

三、添加GitLab软件包存储库并安装软件包
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash

四、安装GitLab包。将EXTERNAL_URL更改为您要访问GitLab实例的URL
sudo EXTERNAL_URL="http://ip:端口" yum install -y gitlab-ee
如果需要修改:vim /etc/gitlab/gitlab.rb

五、重新配置:gitlab-ctl reconfigure
重置时可能会报postgresql无法启动的错“Error executing action `run` on resource 'execute[clear the gitlab-rails cache]'” ,
解决方法:在 gitliab.rb里添加 postgresql['shared_buffers'] = "256MB"

六:重启:gitlab-ctl restart

由于我使用的是阿里云,内存是1G的,不符合gitlab的最低运行要求,若直接安装,会使得服务器卡顿不堪,难以使用,且gitlab也无法正常运行,进入gitlab的服务网页,会提示:

如何解决这个问题呢?参照另一篇  阿里云安装GitLab内存不足解决方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值