强制Bundler安装本地Ruby版本支持的gem

时间:2016-09-07 09:30:21

标签: ruby-on-rails ruby rubygems bundler activesupport

是否有一种方法可以安装最新支持的依赖版本而无需指定它?

我遇到了activesupport宝石的问题。最新版本(5.0.0.1)支持Ruby&gt; = 2.2.2。如果我指定我需要像这样'~> 4.2'的宝石,即使我在Ruby 2.0上,Bundler也会尝试安装版本5。指定确切的版本4.2.7.1或设置最大'~> 4.2', '< 5'有效,除非使用带有Rails 5的gem。

有没有办法根据当前的Ruby版本管理gem版本?

2 个答案:

答案 0 :(得分:1)

显然,新版本的Bundler会自动为您完成此操作。 我发现AndréArko的this comment提到这已经包含在最新的RC版本中了。

我在我的Gemfile中指定了 pubnub.subscribe("Hell0 World", new Callback() { @Override public void successCallback(String arg0, Object arg1) { System.out.println(arg1); } //Adding the publish code into the connect callback. @Override public void connectCallback(String arg0, Object arg1) { pubnub.publish("Hello_World", "Hello World !", new Callback() { @Override public void successCallback(String arg0, Object arg1) { System.out.println(arg1); } // here you should add an implementation of connectCallback : @Override public void connectCallback(String arg0, Object arg1) { // some code } }); } }); ,安装了Bundler Ruby '2.0'(它安装了bundler-1.13.0.rc.2)并且gem install bundler --pre成功安装了activesupport 4.2.7.1。

使用Bundler 1.12.5我收到以下错误:

bundle install

答案 1 :(得分:0)

请注意,虽然更多手动,但您也可以在Gemfiles中包含逻辑:

if RUBY_VERSION <  "2.2.2"
  gem "activesupport", "4.2.7.1"
else
  gem "activesupport", "5.0.0.1"  
end