安装 GitLab 需要注意的地方

系统与文档说明

主要的安装Gitlab的流程安装请参考原官方教程: https://github.com/gitlabhq/gitlabhq/blob/7-0-stable/doc/install/installation.md 。描述的已经很清楚了。

添加swap以满足Gitlab在运行中需要的“内存使用”(穷人家的孩子必读)

注意事项

如果是编译安装git,一般是/usr/local/bin,偶尔一般是/usr/bin目录下, 默认是/usr/bin ,特别需要小心。

浏览过很多有关于Gitlab的安装,很多人对gitlab在push代码时,都遇到类似说
lanrion test_me (master) $ git push -u origin master
fatal: 'root/test_me.git' does not appear to be a git repository
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
特别是你在Web界面上操作合并MR时不成功,但就是没有错误信息或者其他提示。

Gitlab是通过发送API的形式通知 gitlab-shell(https://github.com/gitlabhq/gitlab-shell )来执行git命令,所以在操作git相关的 操作时,除了本能的排除 gitlab/log/ 和 /var/log/nginx/ 的错误,一定要仔细检查 /home/git/gitlab-shell 下的 gitlab-shell.log 。

像上述举例的 fatal: 'root/test_me.git' does not appear to be a git repository 错误例子,需要理解,当你使用 test账号在gitlab web 界面时创建一个名为 test_gitlab 的repository时,gitlab的后台其实是在/home/git/repositories/test创建了两个文件:test_gitlab.wiki.git和test_gitlab.git,原因就是没有创建test_gitlab.git.

解决方案:升级gitlab-shell是最佳解决方案。

如果创建正常,相对应的在 gitlab-shell.log下会有如下正常的log:

I, [2014-06-28T01:32:18.984690 #31310]  INFO -- : Adding project test/test_gitlab.wiki.git at </home/git/repositories/test/test_gitlabwiki.git>.
I, [2014-06-28T01:32:18.986640 #31311]  INFO -- : Adding project test/test_gitlab.git at </home/git/repositories/test/test_gitlabgit>.

当然,有些部分可能是因为 API传过来的参数 有问题,具体需要查看 gitlab-shell.log 的报错信息。

关注 gitlab-shell.log 能够帮你解决大部分的怪异问题。

实用Gitlab自身携带的检测错误命令

sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production

sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production