将GitLab 2.9.1 升级到 5.0 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要回答技术问题时复制粘贴 AI 生成的内容
cheka
V2EX    程序员

将GitLab 2.9.1 升级到 5.0

  •  
  •   cheka 2013-04-09 15:36:08 +08:00 7480 次点击
    这是一个创建于 4624 天前的主题,其中的信息可能已经有所发展或是发生改变。
    此前的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_mysql

    2. 安装升级完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已经不再使用, 所以直接将所有项目目录里这个软链接删除即可。
    17 条回复    1970-01-01 08:00:00 +08:00
    lookhi
        1
    lookhi  
       2013-04-09 15:53:10 +08:00
    虽不觉但明厉 你懂的
    techzhou
        2
    techzhou  
       2013-04-09 16:23:24 +08:00
    我也是加key不生效 要自己运行update_keys任务 5.0终于说Recommended了么
    cheka
        3
    cheka  
    OP
       2013-04-09 16:49:21 +08:00
    @techzhou 多半是sidekiq没有运行, 你到background jobs里查看一下。 我现在只要在web界面增加key 就可以了, 无需手动执行任何脚本。
    glancesx
        4
    glancesx  
       2013-04-09 17:09:52 +08:00
    这东西赶上了chrome的升级速度了
    cheka
        5
    cheka  
    OP
       2013-04-09 17:19:03 +08:00   1
    @techzhou 可以用这段命令运行sidekiq
    sudo -u git -H bundle exec rake sidekiq:start RAILS_ENV=production
    flycn1985
        6
    flycn1985  
       2013-04-09 17:51:34 +08:00
    一转眼。。已经5.x了
    fly2never
        7
    fly2never  
       2013-04-09 19:31:15 +08:00
    小团队用atlassian stash吧,省心
    ljbha007
        8
    ljbha007  
       2013-04-09 20:29:27 +08:00
    真够折腾的
    adow
        9
    adow  
       2013-04-09 21:45:45 +08:00 via iPhone
    之前刚装好没多久就看到说5.0出来了,好纠结不知道要不要升级啊
    cngithub
        10
    cngithub  
       2013-04-09 22:39:36 +08:00
    个人还是觉得有点奇怪。小团队为什么不购买个github的服务?也不贵吧?

    未来维护这类配置与服务的时间,其实挺浪费时间的。
    cheka
        11
    cheka  
    OP
       2013-04-10 00:32:42 +08:00
    @cngithub 照常理购买服务绝对是更合理的选择,实际上我司两年半前就是unfuddle的付费用户,但是后来unfuddle被墙(准确的说是Amazon EC2被墙),一堆人坐在那里无法无法提交代码(那时候用的是Svn)。

    后来就下决心自己维护了,难说github什么时候也会被墙。

    ----哦, 已经墙过了。
    chloerei
        12
    chloerei  
       2013-04-10 00:36:54 +08:00 via Android
    @cheka VPN
    allenhsu
        13
    allenhsu  
       2013-04-10 00:57:44 +08:00
    key 不能自动加入也可能是文件权限问题?
    cyfdecyf
        14
    cyfdecyf  
       2013-04-10 10:16:33 +08:00
    @cheka 之前一直在用 gitolite,昨天部署 gitlab 也遇到 web 加 ssh key 失败的问题,谢谢提醒,起了 sidekiq 之后都正常了。

    @cngithub 我是放在学校实验室用,之前 gitolite 已经 65 个 repo 了,买 github 的收费版对我们来说太贵了。
    goinaction
        15
    goinaction  
       2013-04-10 23:43:41 +08:00
    我装了GitLab后,nginx转发的时候经常被GitLab拒绝连接,总是要重试很多次,看日志是worker timeout,不知道是哪儿配置有问题
    cngithub
        16
    cngithub  
       2013-04-11 13:27:28 +08:00
    @cyfdecyf 真不错,累计repo也太多了吧:D
    sharp
        17
    sharp  
       2013-04-25 17:06:19 +08:00
    这里竟然有这个帖子, 也可以这样解决 username为空 https://github.com/gitlabhq/gitlab-public-wiki/wiki/Trouble-Shooting-Guide

    RAILS_ENV=production bundle exec rails console

    User.where(:username => nil).each { |u| u.username = u.email.sub(/@.+/, ''); u.save! }
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2560 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 03:39 PVG 11:39 LAX 19:39 JFK 22:39
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86