本次维护历时1小时15分钟,服务共中断49分钟。

Gitlab7.0放弃了对ruby-1.9.3的支持,最低版本为ruby-2.0.0。由于官方安装说明指出:使用rvm等自动工具安装ruby,可能导致ssh操作仓库异常,因此手动编译了ruby-2.0.0-p481。

在安装编译环境和ruby依赖时发现apt-get中许多软件包的依赖关系有问题,经过修复解决了一部分依赖问题,到目前为止仍然有部分包的依赖关系不正确。

由于重装了ruby-gem,因此需要重装Gitlab所需的所有gems

安装rubygem:mysql时,提示:

unable to convert “\xE0” from ASCII-8BIT to UTF-8 for lib/mysql2/mysql2.so, skipping

这是由于locale设置错误引起的

解决办法:

export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8

另外,为nginx配置增加了X-Forwarded-Forh和X-Frame-Options字段.

Gitlab官方升级教程存在缺陷,本次的升级脚本添加了service启动脚本的替换。

目前遗留问题:

  1. Gitlab给出了nginx的https配置模板,但是,我为当前配置添加X-Forwarded-Proto字段时报错“could not build the proxy_headers_hash, you should increase either proxy_headers_hash_max_size: 512 or proxy_headers_hash_bucket_size: 64”
  2. Gitlab的主配置文件config.yml过期,之前升级版本时都没有注意更新,导致最新版本的配置和当前配置相差较大,合并较困难。幸运的是,这暂时还没有引发问题。

7.0主要特性:

  • 受保护的分支不能被删除
  • 开发人员可以使用UI清除普通分支
  • 增强对第三方CI工具的支持
  • 通过向markdown文本拖动图片,即可将图片上传并插入到markdown中(赞)
  • 允许对huge push设置提醒
  • 支持LDAP过滤器
  • 移除wall功能
  • 增强对移动客户端的支持
  • 其他逻辑改进
  • 其他安全性改进
  • 其他UI改进