4

当我尝试在命令行中包含库时,我收到 LoadError 消息

$ ruby -v
ruby 1.8.7 (2012-06-29 patchlevel 370)

$ gem list | grep coderay_bash
coderay_bash (1.0.2)

$ ruby -rcoderay_bash /bin/coderay -v
ruby: no such file to load -- coderay_bash (LoadError)

$ ruby -rubygems -rcoderay_bash /bin/coderay -v
ruby: no such file to load -- coderay_bash (LoadError)

它看起来适用于 ruby​​ 1.9.2

$ ruby -v
ruby 1.9.2p290 (2011-07-09)

$ ruby -rcoderay_bash /bin/coderay -v
CodeRay 1.0.7
4

1 回答 1

2

在 Ruby 1.8 中,任何你想require用 RubyGems 安装的东西都无法访问,除非你require 'rubygems'. 1.9 删除了这个要求。

为此,您有多种选择:

  • 只需放在require 'rubygems'文件的顶部即可。这对 1.9 来说是无害的,并且可能是最简单的事情,因为它在代码中,使用您的应用程序的人无需记住任何内容
  • 将您的 shebang 行更改为#!/usr/bin/env ruby -rubygems This 告诉 Ruby 解释器需要 ruby​​gems,但允许用户通过直接发送您的文件来避免这种情况ruby,如果他们因某种原因被 RubyGems 冒犯了
  • 始终使用 运行ruby和使用-rubygems,例如,ruby -rubygems my_app.rb 这在您的代码中不依赖于 RubyGems,并且可以工作,但您必须记住每次都这样做,这有点痛苦。
于 2012-07-16T18:08:48.887 回答