如何使用bundle来查看RVM正在使用的Ruby版本?

时间:2013-02-21 13:23:00

标签: ruby-on-rails ruby rvm bundler

关于Ruby版本和RVM,这里有很多问题 - 我仔细研究过它们,找不到解决我特定问题的方法:

我已经根据我的知识正确安装和配置RVM。

$ ruby -v
ruby 1.9.3p362 (2012-12-25 revision 38607) [x86_64-darwin12.2.0]

但是,在运行bundle install时,我收到此消息:

$ bundle install
Updating http://github.com/rails/prototype_legacy_helper.git
Fetching gem metadata from http://rubygems.org/......
Fetching gem metadata from http://rubygems.org/..
Enter your password to install the bundled RubyGems to your system: 
Using rake (10.0.3) 
Using RedCloth (4.2.9) 
Using i18n (0.6.1) 
Using multi_json (1.6.1) 
Using activesupport (3.2.12) 
Using builder (3.0.4) 
Using activemodel (3.2.12) 
Using erubis (2.7.0) 
...

...
Using eventmachine (1.0.0) 
Using excon (0.17.0) 
Installing factory_girl (3.6.2) 
Gem::InstallError: factory_girl requires Ruby version >= 1.9.2.
An error occurred while installing factory_girl (3.6.2), and Bundler cannot continue.
Make sure that `gem install factory_girl -v '3.6.2'` succeeds before bundling.

对我而言,重要的一行是factory_girl requires Ruby version >= 1.9.2.,这让我觉得bundle不尊重RVM设置使用的ruby版本。我不知道我的配置在哪里出错了。我之前从未遇到过RVM的问题。实际上,gem install factory_girl -v '3.6.2'正常工作,但捆绑后仍然没有看到它。

手动安装factory_girl的输出:

$ sudo gem install factory_girl -v '3.6.2'
Password:
Successfully installed factory_girl-3.6.2
1 gem installed
Installing ri documentation for factory_girl-3.6.2...
Installing RDoc documentation for factory_girl-3.6.2...

如何让捆绑与RVM玩得很好?

3 个答案:

答案 0 :(得分:2)

检查一次,完成后,它可以正常工作

$ rvm --default use 1.9.2

答案 1 :(得分:2)

可能是因为你根本没有使用rvm。通过使用gem install,您已在系统上安装了gem。鉴于此,如果您没有以root身份安装rvm,则需要在开始使用bundle并安装gem之前设置ruby版本。

rvm对bundle完全透明的东西。如果使用得当,bundle将按预期工作。

尝试删除您系统中可能拥有的所有宝石。然后使用rvm命令使用一些ruby版本,如:

rvm use 1.9.2

然后,运行bundle install。 = P

答案 2 :(得分:2)

两个因素:

  1. 不要使用sudo它使用非RVM命令,也不使用rubygems使用的RVM环境

  2. 检查.bundle/config - 如果它包含PATH / STANDALONE,它将强制捆绑器跳过RVM gemsets并在RVM范围外的本地目录中使用额外的bundler隔离,{{ 1}}应该修复它,如果你使用capistrano bundler集成,你需要设置正确的标志bundle install --system