【问题标题】:can't get ruby 1.8.7 to work after installing 1.9.2安装 1.9.2 后无法让 ruby​​ 1.8.7 工作
【发布时间】:2011-08-16 15:46:56
【问题描述】:

我在 Windows 7 上通过一键安装程序安装了 ruby​​ 1.9.2。

现在我有一个只能在 1.8.7 上运行的 gem

所以我安装了 Pik 并试图让 1.8.7 工作。

irb 运行良好,但 require 不行。

例如,如果我做一个宝石列表 它列出了有问题的宝石 当我需要 irb 中的 gem 时,它说没有要加载的文件。

当我使用 Pik 切换回 1.9.2 时,一切都很好(即 ​​gem 加载)

我尝试在 pik 外部和 pik 内部加载 gem。

这是我在 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 吗?

感谢您的帮助!

【问题讨论】:

    标签: ruby windows gem pik


    【解决方案1】:

    虽然 RubyInstaller 在软件包中包含 RubyGems,但 Ruby 1.8.x 本身并不会像 1.9.1 和 1.9.2 那样默认激活 RubyGems。

    您需要先require "rubygems",然后再对您要加载的任何 gem 执行 require。

    由于您的脚本可以在两个版本的 Ruby 上运行,您可以执行以下操作:

    require "rubygems" unless defined?(Gem)
    

    如果未定义(在 Ruby 1.9.2 下)将启用 RubyGems

    希望对您有所帮助。

    【讨论】:

    • 就是这样...非常感谢。顺便说一句,要求运行在 1.9.2 下的 ruby​​gems 似乎没有任何伤害,“除非定义吗?(Gem)真的需要吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多