我按照以下步骤更新了我的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。我转而使用它,按照上面的相同步骤,仍然有同样的问题。
答案 0 :(得分:0)
我想我发现了这个问题,这似乎与rvm或ruby-1.9.3完全无关。我的bundler配置有问题。我希望这有助于任何看到没有使用宝石套装而感到惊讶的人。
所以,
» 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 config default上的任何配置覆盖。但到目前为止,这个工作有效,而且我的新宝石套装使用了1-.9.3-rc1。不幸的是,并非所有我的宝石都使用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配置使用默认值,所以我不必自己更改它。我尝试在myproject
目录下编辑.bundle / config而没有运气。