去年为实验室部署了gitlab用于项目代码和文档的管理,在hixicar项目中用的比较多,也起到不错的作用,可惜其他项目就没怎么用,基本是我自己在用了,不过也极大方便我自己的项目的管理。。
当时安装的最新版本是7.3,作为一个版本帝软件,gitlab的小版本号几乎一直在涨,最近已经涨到了7.14.1了。用的7.3虽然可用,但是有一些小小的问题,当一个项目的文件数特别多,hixi的文件大概到了1G多,后来把文档分离出来后还有500M左右,这样这个项目的Graph画不出来了。虽然没什么太大影响,但是总觉得不爽,一直也没有去解决,最近没什么事就想着升级一下。
官方提供的升级非常方便,可以直接使用软件仓库安装gitlab-ce替换原来安装的gitlab,会保留原来的数据不丢失。简直碉!堡!了!哇!
官方的升级文档: https://about.gitlab.com/upgrade-to-package-repository/
安装repo
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash |
但是我的curl要使用代理,之前使用代理是配置-x
参数,但是从网上下载的这个 script.rpm.sh 脚本里面也要用curl去下载文件,这样就会导致运行这个脚本失败。可以设置curl的全局代理,这里有一个小小的trick:使用alias;
alias curl='curl -x proxy_host:port' |
这样使用curl就相当于使用curl的别名(alias)会带上代理设置了。另一个方法就是在$HOME/.curlrc 配置文件中添加代理:
vim ~/.curlrc |
这样就可以了。
其实使用命令安装repo挺麻烦的,尤其在网络不方便的情况下。可以直接使用下面的文本添加repo到/etc/yum.repo.d/
[gitlab_gitlab-ce] |
上面是对应centos 6的,7的话自己相应修改就可以了。其中的http协议也可以改成https。
安装gitlab-ce
gitlab提供的开源免费版本命名是gitlab-ce了,包名也成了gitlab-ce,安装好repo后,网络比较好的话,可以直接运行安装:
sudo yum install gitlab-ce |
仔细看输出会看到gitlan-ce会替换原来的gitlab。因为gitlab的安装路径固定在/opt/gitlab/, 所以替换安装也比较方便吧。反正觉得真的挺方便的,原来的repositories都还在。
但是,gitlab-ce这个包有200多MB,使用yum安装下载数据要300多M。我试着下了好久都没有下载下来,只好在本地windows用浏览器下载了(本机翻墙速度比较好,500-1000Kb/s),再scp到服务器。
rpm下载地址: https://packages.gitlab.com/gitlab/gitlab-ce?filter=rpms
scp到服务器,可以使用git客户端提供就有的scp工具,启动git bash,运行 scp gitlab-ce-7.14.1-ce.0.el6.x86_64.rpm username@host:gitlab-ce-7.14.1-ce.0.el6.x86_64.rpm
在服务器端使用rpm安装
cd |
使用rpm包本地安装也会替换安装原来的gitlab,简直不错。
要注意,虽然git仓库相关的数据不会被删除,但如果你修改多gitlab的rails项目,比如我修改过登陆页面的内容,这些修改会被覆盖掉。如果要保留这些数据要记得做备份。而gitlab的配置文件, /etc/gitlab/gitlab.rb 应该是不会被覆盖的。
安装完后,gitlab会自动 reconfigure 并启动,如果有问题就需要自己看输出内容排查了。比如我们使用学校的smtp服务器发送邮件,修改了gitlab配置的smtp配置,而又在/etc/gitlab/gitlab.rb 中配置了邮件相关的项,导致新的系统 reconfigure 失败,把两处的配置修改到相同就可以正常启动了。参考
新的gitlab添加了很多新的特性,更多的配置项,甚至还有多套主题。。。还不错。
加张图