我正在Ubuntu 10上安装gitlab-5.0,当我在gitlab安装指南的section 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#
然后,在section Gems ...
上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]
您如何避免此错误?
答案 0 :(得分:3)
堆栈跟踪表明您确实没有使用Ruby 2.0来安装您的gem,而是系统提供的1.8.7。这可能是由于您使用sudo
。
如果您使用RVM安装了Ruby 2.0.0,则必须使用rvmsudo
,这将确保rvm对$PATH
所做的更改以加载特定的ruby版本将可用程序以root身份运行。默认情况下,sudo
会清除$PATH
,并会重新发布更改。
答案 1 :(得分:1)
还有few issues和ruby 2.0,我现在还是会推荐1.9.3。
但请确保在ruby 2.0旁边没有安装其他ruby,当然不是像issue 2285中那样的ruby 1.8。
答案 2 :(得分:1)
我发现rvm和gitlab不能很好地协同工作,除非你真的需要在你的服务器上轻松支持多个版本的ruby,只需root root install ruby。
主要问题是gitlab安装经常使用sudo,但root与gitlab用户没有相同的路径。对于rvm来说,这不是一条快乐的路径,因为它最好安装为单个用户安装,并且即使为多用户正确安装,也对路径更改非常敏感。