我试图在Windows上使用带有Ruby 2.2的IMDB gem但是这个gem似乎强制使用旧版本的Nokogiri,它与我在Windows上的Ruby版本不兼容。
这是我得到的信息:
The bundle currently has Nokogiri locked at 1.6.2.1.
我确实安装了RC4版本。
有没有办法强制IMDB使用RC4版本? 还是我没想到的其他解决方案?
答案 0 :(得分:1)
Windows上最简单的解决方案可能是使用Linux创建虚拟机,然后安装Ruby。
Windows在处理宝石方面存在许多问题。
答案 1 :(得分:0)
这个解决方案只是一个丑陋的黑客,我不建议使用它。
最好的解决方案是使用(可能的)“乐观”版本约束的imdb-gem的更正版本。
免责声明2:我不使用bundler,也许这个解决方案并不像我展示的那样完全正常。但捆绑者的过程应该类似。
s.add_dependency 'nokogiri', '= 1.6.5'
或版本0.8.2
s.add_dependency 'nokogiri', '= 1.6.2.1'
如果这包含像
这样的乐观版本约束s.add_dependency 'nokogiri', '=~ 1.6'
您可以使用您使用的版本(假设没有理由使用此特定版本)。
在gem install
期间,gemspec被复制到类似的位置
[ruby-installation-path]/lib\ruby\gems\2.1.0\specifications
。
查找文件imdb-0.8.2.gemspec
并进行此更改:
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
# Begin of Hack the nokogiri version
# s.add_runtime_dependency(%q<nokogiri>, ["= 1.6.2.1"])
s.add_runtime_dependency(%q<nokogiri>, ["~> 1.6"])
# End of Hack the nokogiri version
s.add_development_dependency(%q<rake>, ["~> 10.0.3"])
然后尝试你的脚本是否有效。
我使用nokogiri版本1.6.6.2测试并且没有检测到任何问题。
如果版本1.6.7.rc4也有效,我建议要求对https://github.com/ariejan/imdb和新版本的imdb-gem进行更改。