当我尝试在命令行中包含库时,我收到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中,在需要’rubygems’之前,无法访问任何您想要使用RubyGems安装的内容. 1.9删除了此要求.
你有几个选择:
>只需在文件顶部放置require’rubygems’即可.这对于1.9来说是无害的,可能是最简单的事情,因为它在代码中并且没有人使用你的应用程序必须记住任何东西
>将你的shebang行更改为#!/usr/bin/env ruby -rubygems这告诉Ruby解释器需要rubygems,但允许用户通过将文件直接发送到ruby来避免这种情况,如果他们因为某些原因被RubyGems冒犯了
>始终使用ruby运行并使用-rubygems,例如ruby -rubygems my_app.rb这在代码中没有依赖RubyGems,并且可以工作,但你必须记住每次都这样做,这有点痛苦.