当我尝试在命令行中包含一个库时,我收到 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
最佳答案
在 Ruby 1.8 中,除非您使用 require
,否则无法访问随 RubyGems 安装的任何您想要 require 'rubygems'
的内容。 1.9 删除了此要求。
为此,您有多种选择:
require 'rubygems'
放在文件的顶部。这对 1.9 来说是无害的,而且可能是最简单的事情,因为它在代码中,使用您的应用程序的人无需记住任何内容 #!/usr/bin/env ruby -rubygems
这告诉 Ruby 解释器需要 rubygems,但允许用户通过将您的文件直接发送到 ruby
来避免这种情况,如果他们因某种原因被 RubyGems 冒犯 ruby
运行并使用 -rubygems
,例如ruby -rubygems my_app.rb
这在你的代码中没有对 RubyGems 的依赖,并且可以工作,但是你必须记住每次都这样做,这有点痛苦。 关于ruby 命令行加载错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11496924/