在我的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?
答案 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
。