2

我在 Ubuntu 10 上安装 gitlab-5.0,当我在 gitlab 安装指南的Ruby 部分执行“sudo gem install bundler”命令时,它显示了下一个冲突:

root@ubuntu:/home/gitlab/gitlab# sudo gem install bundler
Successfully installed bundler-1.3.4
Installing ri documentation for bundler-1.3.4
/usr/lib/ruby/1.8/rdoc/rdoc.rb:280: warning: conflicting chdir during another chdir block
/usr/lib/ruby/1.8/rdoc/rdoc.rb:287: warning: conflicting chdir during another chdir block
Done installing documentation for bundler after 8 seconds
1 gem installed
root@ubuntu:/home/gitlab/gitlab# 

然后,在宝石部分...

root@ubuntu:/home/gitlab/gitlab# sudo gem install charlock_holmes --version '0.6.9'
Building native extensions.  This could take a while...
Successfully installed charlock_holmes-0.6.9
Installing ri documentation for charlock_holmes-0.6.9
/usr/lib/ruby/1.8/rdoc/rdoc.rb:280: warning: conflicting chdir during another chdir block
/usr/lib/ruby/1.8/rdoc/rdoc.rb:287: warning: conflicting chdir during another chdir block
Done installing documentation for charlock_holmes after 0 seconds
1 gem installed

root@ubuntu:/home/gitlab/gitlab# sudo -u git -H bundle install --deployment --without development test postgres
Gemfile syntax error:
/home/gitlab/gitlab/Gemfile:14: syntax error, unexpected ':', expecting $end
gem "mysql2", group: :mysql

我的红宝石版本:

root@ubuntu:/home/gitlab/gitlab# ruby -v
ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-linux]

你会如何避免这个错误?

4

3 回答 3

3

堆栈跟踪表明您确实没有使用 Ruby 2.0 来安装 gems,而是使用系统提供的 1.8.7。这可能是由于您使用sudo.

如果您使用 RVM 安装了 Ruby 2.0.0,则必须rvmsudo改用它来确保 rvm$PATH对加载特定 ruby​​ 版本所做的更改可用于以 root 身份运行的程序。默认情况下,sudo清理$PATH并取消更改。

于 2013-03-23T16:41:31.850 回答
1

ruby 2.0仍然存在一些 问题,我现在仍然推荐 1.9.3。

但请确保在您的 ruby​​ 2.0 旁边没有安装其他 ruby​​,当然不是 ruby​​ 1.8,就像在issue 2285中那样。

于 2013-03-23T15:56:13.307 回答
1

我发现 rvm 和 gitlab 不能很好地结合在一起,除非你真的需要在你的服务器上轻松支持多个版本的 ruby​​,否则只需 root 安装 ruby​​。

主要问题是 gitlab 安装经常使用 sudo,但 root 没有与 gitlab 用户相同的路径。对于 rvm 来说,这不是一条好的路径,因为它最好作为单用户安装进行安装,并且即使为多用户正确安装,它也对路径更改非常敏感。

于 2013-03-25T05:17:15.460 回答