我在Windows 7上通过一个单击安装程序安装了ruby 1.9.2。
现在我有一个仅在1.8.7上运行的宝石
所以我安装了Pik,并试图让1.8.7工作。
irb运行正常,但不需要。
例如,如果我做一个宝石列表 它列出了有问题的宝石 当我在irb中需要gem时,它说没有要加载的文件。
当我使用Pik切换回1.9.2时一切都很好(即宝石加载)
我尝试在pik之外和pik内部加载宝石。
这是我在1.8.7下运行的加载路径:
....>ruby -ve "puts $LOAD_PATH.inspect"
ruby 1.8.7 (2011-06-30 patchlevel 352) [i386-mingw32]
["C:/Ruby187/lib/ruby/site_ruby/1.8", "C:/Ruby187/lib/ruby/site_ruby/1.8/i386-ms
vcrt", "C:/Ruby187/lib/ruby/site_ruby", "C:/Ruby187/lib/ruby/vendor_ruby/1.8", "
C:/Ruby187/lib/ruby/vendor_ruby/1.8/i386-msvcrt", "C:/Ruby187/lib/ruby/vendor_ru
by", "C:/Ruby187/lib/ruby/1.8", "C:/Ruby187/lib/ruby/1.8/i386-mingw32", "."]
我没有在路径上看到Ruby187 / lib / ruby / gems / 1.8 ......也许这就是问题所在?如果是这样我如何解决它(我不知道如何更改加载路径)并且有人知道为什么pik不起作用或我可以做些什么来修复。
最后,有没有人知道如何摆脱1.9.2,并做一个1.8.7的干净安装?
感谢您的帮助!
答案 0 :(得分:1)
虽然RubyInstaller将RubyGems包含在软件包中,但Ruby 1.8.x本身并不像1.9.1和1.9.2那样默认激活RubyGems。
在要求加载任何宝石之前,您需要require "rubygems"
。
由于您的脚本可以在两个版本的Ruby上运行,因此您可以执行以下操作:
require "rubygems" unless defined?(Gem)
如果没有定义RubyInms,那将启用RubyGems(在Ruby 1.9.2下)
希望有所帮助。