ruby命令行LoadError

时间:2012-07-16 00:46:45

标签: ruby command-line gem

当我尝试在命令行中包含库时,我收到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

1 个答案:

答案 0 :(得分:2)

在Ruby 1.8中,在require之前,无法访问与RubyGems一起安装的任何require 'rubygems'。 1.9删除了此要求。

您有以下几种选择:

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