我按照以下步骤更新我的 rvm 后安装了 ruby-1.9.3-preview1:
» rvm get head
» rvm reload
» rvm install ruby-1.9.3-preview1
然后我为我的项目创建了一个 gem 集并尝试使用它。
» rvm --create ruby-1.9.3@myproject
» rvm use ruby-1.9.3@myproject
我通过以下方式对其进行测试:
» ruby -v
ruby 1.9.3dev (2011-07-31 revision 32789) [x86_64-darwin11.1.0]
但是当我尝试使用它时:
» bundle exec rails server
/Users/<home>/.rvm/gems/ruby-1.9.2-p290@envision/gems/activesupport-3.0.7/lib/active_support/dependencies.rb:239:in `block in require': iconv will be deprecated in the future, use String#encode instead.
=> Booting WEBrick
它似乎仍在使用旧版本的 Ruby。有其他人遇到过这个问题还是我做错了什么?
编辑
我原本打算安装最新的ruby-1.9.3-rc1。我按照上面的相同步骤改用它,但仍然遇到同样的问题。
最佳答案
我想我发现了这个问题,它似乎与 rvm 或 ruby-1.9.3 完全无关。我的 bundler 配置有问题。我希望这能帮助那些看到 gem 组未被使用而感到惊讶的人。
所以,
» bundle config
Settings are listed in order of priority. The top value will be used.
path
Set for the current user (/Users/<home>/.bundle/config): "/Users/<home>/.rvm/gems/ruby-1.9.2-p290@myproject"
….
这意味着默认情况下它将始终使用路径下的 gem 集。
» bundle config path ''
似乎解决了这个问题。我确信有一种更好的方法可以通过显式删除来删除 bundle 配置默认值上的任何配置覆盖。但到目前为止,这是有效的,我使用了 1-.9.3-rc1 的新 gem 集。不幸的是,并非我所有的 gem 都使用 1.9.3-rc1 进行编译,特别是 gherkin-2.2.9 的问题。让我知道是否有人成功了。我想这是一个不同的问题。
编辑
» bundle config path ''
这样做是个坏主意。我很快意识到我的错误,因为这将直接默认当前用于创建您的 gemset。
» bundle config path $GEM_HOME
在确保 GEM_HOME 指向 …/ruby-1.9.3-rc1@myproject 之后,以上内容更好。所以是的,我仍然想知道如何让 bundle config 使用默认值,这样我就不必自己更改它。我尝试在 myproject
目录下编辑 .bundle/config 但没有成功。
关于ruby - RVM 似乎不能很好地与 ruby-1.9.3-preview1 配合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7564019/