关于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玩得很好?
答案 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)
两个因素:
不要使用sudo
它使用非RVM命令,也不使用rubygems使用的RVM环境
检查.bundle/config
- 如果它包含PATH
/ STANDALONE
,它将强制捆绑器跳过RVM gemsets并在RVM范围外的本地目录中使用额外的bundler隔离,{{ 1}}应该修复它,如果你使用capistrano bundler集成,你需要设置正确的标志bundle install --system