此前的2.9.1不知为什么在界面添加ssh-key总是不能起效, 加一个用户或者key总是要在$HOME/.ssh/, gitolite-admin 里进行配置, 非常麻烦。
Gitlab 5.0 不再依赖gitolite, 所以昨天下决心升级。
安装过程基本参照官方文档
https://github.com/gitlabhq/gitlabhq/blob/5-0-stable/doc/install/installation.md但是升级过程中形形色色的问题, 折腾了很久才搞定, 这里把一些容易出问题的地方列出, 供有需要的各位参考:
1. 因为Gitlab5.0 不再支持SQLite, 因此升级Gitlab之前, 需要先将数据库从 SQLite3 迁移到MySQL, 大体步骤是
1) 从SQLite里dump出数据
2) 编辑gitlab的数据库配置文件, 设成MySQL
3) 将数据导入MySQL
参考这个链接
https://wiki.archlinux.org/index.php/Gitlab#Migrate_from_sqlite_to_mysql2. 安装升级完Gitlab5.0 之后, 运行如下命令进行配置检查
sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production
结果会列出所有有问题的地方, 以及给出修正提示。 按照提示更新数据库的scheme
3. 反复运行上述检查, 务必确保没有问题之后, 可以访问gitlab, 但是持续显示404。 因为不怎么会ruby和rails,这个问题折腾了我好久,几乎要放弃,后来发现gitlab所用数据库 gitlabhq_production的users表里有两个字段name和username, 其中name是之前的用户名数据, 而username全部为NULL, 于是执行如下SQL
"update users set username=name;"
然后就可以正常访问gitlab了 -_-||
4. 如果发现在gitlab界面上添加的ssh-key不生效, 可以到admin的Background Jobs里看看有没有相应的jobs, 以及有没有活动的sidekiq worker, 因为多半是sidekiq没有启动。
5. 最好通过最新的gitlab界面重新添加一下各个用户的ssh-key, 然后把服务器上git用户的authorized_keys里使用gitolite-shell的条目都删除。
6. 此时代码应该可以pull, 但是push的时候会报一些hook的问题失败, 原因是repositories中每个项目的hooks目录里会有一个链到.gitolite的update脚本的软链接, 每次push代码的时候都会被调用, 因为gitolite已经不再使用, 所以直接将所有项目目录里这个软链接删除即可。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://yangjunhui.monster/t/65379
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.