linux上的Bundler不接受rcx版本?

时间:2016-04-16 01:25:05

标签: ruby-on-rails ruby bundler

在我的capistrano部署期间,我遇到了这个错误

Bundler could not find compatible versions for gem "nokogiri":
  In snapshot (Gemfile.lock):
    nokogiri (= 1.6.8.rc3)

  In Gemfile:
    nokogiri (>= 1.6.8.rc3) x64-mingw32

    nokogiri (>= 1.6.8.rc3)

    rails-dom-testing x64-mingw32 was resolved to 1.0.7, which depends on
      nokogiri (~> 1.6.0) x64-mingw32

    rails-dom-testing x64-mingw32 was resolved to 1.0.7, which depends on
      nokogiri (~> 1.6.0)

我不明白,不应该~> 1.6.0接受我锁定的版本1.6.8.rc3?我在调用bundle之后完全在本地运行Rails应用程序(我在Windows上,大声笑),但部署在Ubuntu机器上失败。

是否由我的Gemfile.lock的GEM>规格中的nokogiri (1.6.8.rc3-x64-mingw32)引起?我更新了这个人,所以我可以在Windows上使用Ruby 2.3,但我必须为此牺牲Linux?

1 个答案:

答案 0 :(得分:0)

Gemfile.lock中,只需使用mingw32删除所有行和树枝。例如,如果您的gemfile.lock包含以下行:

nokogiri (1.6.6.2)
  mini_portile (~> 0.6.0)
nokogiri (1.6.6.2-x86-mingw32)
  mini_portile (~> 0.6.0)

删除mingw32部分,它应该是这样的:

nokogiri (1.6.6.2)
  mini_portile (~> 0.6.0)

然后在Windows上生成的Gemfile.lock应该适用于Ubuntu。

您可能希望始终提交Gemfile.lock而不会出现mingw32

或者只需删除Gemfile.lock并直接在Ubuntu计算机上执行bundle install