我正在尝试在某些Ubuntu服务器上安装RubyInline:
sudo gem1.9.1 install RubyInline
ERROR: Error installing RubyInline:
ZenTest requires RubyGems version ~> 1.8
sudo ruby --version
ruby 1.9.1p378 (2010-01-10 revision 26273) [x86_64-linux]
此错误的原因是什么?我对1.8引用感到困惑。这应该都是Ruby1.9.1。如何解决这个问题?
答案 0 :(得分:6)
~> 1.8
表示“任何版本的RubyGems,只要它是1.8或更高,但小于2.0”。因此1.8.0
,1.8.11
,1.8.100
或1.9
都匹配,但您所拥有的版本不匹配。
1.9.1
命令中的gem
并不意味着RubyGems的版本是1.9.1,而是它是Ruby 1.9.1安装附带的版本。要找出您拥有的RubyGems版本,请运行gem1.9.1 --version
。
要解决此问题,您可以升级Rubygems,或者通过运行sudo gem1.9.1 install ZenTest --version "< 4.6"
安装与您拥有的Rubygems版本兼容的ZenTest版本(假设ZenTest 4.5与您的RubyGems兼容)
答案 1 :(得分:4)
简短的回答是
gem update --system
对于长篇答案,请参阅上面的密码帖子。
答案 2 :(得分:1)
说明符〜&gt;具有特殊意义,通过实例最佳显示。 〜&GT; 2.0.3与&gt; = 2.0.3相同且&lt; 2.1。
所以&#34;〜&gt; 1.8&#34; reference是指任何版本的RubyGems&lt; 1.9。
一种可能的解决方案是在没有RubyInline的情况下编写扩展名:
how-to-create-a-ruby-extension-in-c-in-under-5-minutes
答案 3 :(得分:0)
bundle update
对我有帮助,它将ZenTest从4.6.2更新为4.11.1