Debian Gitlab 6.1推送被拒绝/错误

Debian Gitlab 6.1推送被拒绝/错误,debian,gitlab,Debian,Gitlab,在我使用gitlab 5.3之前,一切都很好 现在我通过5.4和6.0升级到gitlab 6.1,现在我无法推送 İ服务器上的安装检查: root@ks:/home/git/gitlab# sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production System information System: Debian 6.0.7 Current User: git Using RVM: no Ruby V

在我使用gitlab 5.3之前,一切都很好

现在我通过5.4和6.0升级到gitlab 6.1,现在我无法推送

İ服务器上的安装检查:

root@ks:/home/git/gitlab# sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production

System information
System:     Debian 6.0.7
Current User:   git
Using RVM:  no
Ruby Version:   1.9.3p327
Gem Version:    2.1.8
Bundler Version:1.3.5
Rake Version:   10.1.0

GitLab information
Version:    6.1.0
Revision:   b595503
Directory:  /home/git/gitlab
DB Adapter: mysql2
URL:        http://git.gigadi.org
HTTP Clone URL: http://git.gigadi.org/some-project.git
SSH Clone URL:  git@git.gigadi.org:some-project.git
Using LDAP: no
Using Omniauth: no

GitLab Shell
Version:    1.7.1
Repositories:   /home/git/repositories/
Hooks:      /home/git/gitlab-shell/hooks/
Git:        /usr/bin/git



root@ks:/home/git/gitlab# sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production
Checking Environment ...

Git configured for git user? ... yes
Has python2? ... yes
python2 is supported version? ... yes

Checking Environment ... Finished

Checking GitLab Shell ...

GitLab Shell version >= 1.7.1 ? ... OK (1.7.1)
Repo base directory exists? ... yes
Repo base directory is a symlink? ... no
Repo base owned by git:git? ... yes
Repo base access is drwxrws---? ... yes
update hook up-to-date? ... yes
update hooks in repos are links: ... 


Checking GitLab Shell ... Finished

Checking Sidekiq ...

Running? ... yes

Checking Sidekiq ... Finished

Checking GitLab ...

Database config exists? ... yes
Database is SQLite ... no
All migrations up? ... yes
GitLab config exists? ... yes
GitLab config outdated? ... no
Log directory writable? ... yes
Tmp directory writable? ... yes
Init script exists? ... yes
Init script up-to-date? ... yes
projects have namespace: ... 

Projects have satellites? ... 

Redis version >= 2.0.0? ... yes
Your git bin path is "/usr/bin/git"
Git version >= 1.7.10 ? ... yes (1.8.3)

Checking GitLab ... Finished
当我在本地计算机中尝试时:

GIT_SSH='ssh -v' git push -f http://mydomain.org/xxx/xxx.git master
结果是:

Counting objects: 154, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (135/135), done.
Writing objects: 100% (154/154), 184.75 KiB, done.
Total 154 (delta 22), reused 0 (delta 0)
remote: /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.3.5/lib/bundler/dsl.rb:33:in `eval_gemfile': Gemfile syntax error: (Bundler::GemfileError)
remote: /home/git/gitlab/Gemfile:14: syntax error, unexpected ':', expecting $end
remote: gem "mysql2", group: :mysql
remote:                     ^
remote:     from /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.3.5/lib/bundler/dsl.rb:9:in `evaluate'
remote:     from /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.3.5/lib/bundler/definition.rb:19:in `build'
remote:     from /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.3.5/lib/bundler.rb:148:in `definition'
remote:     from /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.3.5/lib/bundler.rb:116:in `setup'
remote:     from /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.3.5/lib/bundler/setup.rb:17
remote: error: hook declined to update refs/heads/master
To http://mydomain.org/xxx/xxx.git
 ! [remote rejected] master -> master (hook declined)
error: failed to push some refs to 'http://mydomain.org/xxx/xxx.git'
我使用Debian6.0.7中的gitlab和apache


问题在哪里?

首先,使用http url推送意味着根本不涉及ssh:

  • 设置
    GIT\u SSH
    没有区别
  • 设置GIT\u CURL\u VERBOSE=1将对GIT push的输出产生影响
第二,如所示。。。这是一个ruby版本的问题

我99%确信您已经从RVM安装了1.9.3,但您也安装了system ruby(检查
/usr/bin/ruby--version
)。
当您通过
git@gitlab
(ssh)-您正在启动shell,因此rvm被正确初始化和使用,并且一切正常,但是当您通过HTTP运行时,gitlab直接启动了
gitlab shell
,并且由于某种原因
rvm
不工作,并且使用了系统版本


我这样解决我的问题:

vim /home/git/gitlab-shell/hooks/update
将第一行从

#!/usr/bin/env ruby

现在我推的很好


思考

正如拉马赞所说,我解决了我的问题 vim/home/git/gitlab shell/hooks/update 将第一行从

#!/usr/bin/env ruby
!/usr/bin/env ruby 到


!/usr/local/bin/rubytanks以获取提示。我使用RVM for git来创建一个单独的Ruby环境。我的hashbang是
#/home/git/.rvm/rubies/ruby-2.1.1/bin/ruby