Gitlab升级

Gitlab升级

GitLab是一个基于Ruby on Rails的开源版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。

虽然GitLab是一个从头到位模仿Github的家伙,但是我们确实有这样的需求,并且他还是开源的。相比Gtihub来说可以减少很多成本。Github本身是有企业版可以在公司环境搭建的,但是价钱不菲,看看Github Enterprise定价就知道了,最小的也要一年5000美金,对于小团队小公司是一笔不小的投入。有了Gitlab可以几乎不需投入就能轻松有一套内部的Git管理平台。

Gitlab主要功能:

仓库管理
在创建仓库的时候可以选择创建到群组空间下(类似于Github的Orgnization);也可以到全局空间下,没有前缀;或者个人空间下,默认是私仓,可以选择公开。

公仓和私仓 (权限分配)
每个仓库的权限可以单独分配,只需要设置为Master就可以对仓库有完全的操控权,如果需要过库到别人名下也是支持的。配置允许默认创建公仓还是私仓,自己创建的私仓只能自己和管理员看见。

Github工作流
Github工作流主要是使用Pull Requets的功能完成,没个人去提交自己的仓库,然后再去pull request来完成协作,gitlab也支持pull request。

团队和群组管理
可以建立一个团队(比如公司的某个部门),把用户加进来,这些用户默认就有了访问团队下仓库的给定权限。群组和Github的Orgnizition类似,但又不完全一样。我一把把群组当作项目来用。注意:团队是没有仓库空间的,群组是有的。

github升级

由于开发需求,我把一台服务器上的gtilab由7.13.3升级到最新的版本,以下是我的操作步骤:

停止unicorn、sidekiq:

gitlab-ctl stop unicorn

gitlab-ctl stop sidekiq

如果从7.3.0升级,记得关闭nginx:

gitlab-ctl stop nginx

接下来创建数据备份,防止更新失败:

gitlab-rake gitlab:backup:create

然后就是安装升级包了:
官方下载地址在 https://packages.gitlab.com/gitlab
这上面有gitlab官方提供的所有版本安装文件。我使用的是CE版,所以点击第一个:gitlab/gitlab-ce
这里注意,一定要选择适合自己服务器的gitlab安装文件,像ubuntu和debian应该是下deb文件,centOS是下rpm文件,文件后面都有它使用的服务器类型。
下载完上传到linux服务器上,进入安装包所在的目录,输入命令安装更新:
rpm -Uvh gitlab-ce-8.0.4-ce.1.el6.x86_64.rpm(centOS下)

安装完后,重新加载配置,输入命令:
gitlab-ctl reconfigure

重启Gitlab服务:
gitlab-ctl restart

gitlab就升级成功啦!

这里提醒一点,centOS 6.x版本服务器要下el/6,centOS 7则是el/6,我的服务器是centOS 6.5,在初次升级的时候用了el/7,结果安装完后不能用,会报以下错误:
/opt/gitlab/embedded/bin/ruby: /lib64/libc.so.6: version GLIBC_2.14' not found (required by /opt/gitlab/embedded/lib/libruby.so.2.1)
/opt/gitlab/embedded/bin/ruby: /lib64/libc.so.6: version
GLIBC_2.17’ not found (required by /opt/gitlab/embedded/lib/libruby.so.2.1)

查了下资料,输入如下命令:
rpm -e 刚才安装的安装包名 (不带.rpm)
卸载掉刚才安装错的,再输入:
rpm -Uvh gitlab-ce-8.0.4-ce.1.el6.x86_64.rpm (注意中间是.el6.)
之后的步骤和上面一样。这样就解决了。

你可能感兴趣的:(git,gitlab)