安装1.9.2后无法使ruby 1.8.7工作

时间:2011-08-16 15:46:57

标签: ruby windows gem pik

我在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的干净安装?

感谢您的帮助!

1 个答案:

答案 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下)

希望有所帮助。