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)

ルビー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 では、requireRubyGems でインストールされた必要なものはすべて、アクセスするまでアクセスできませんrequire 'rubygems'。1.9 では、この要件が削除されています。

これにはいくつかのオプションがあります。

  • require 'rubygems'ファイルの先頭に置くだけです。これは 1.9 では無害であり、おそらく最も簡単な方法です。これはコード内にあり、アプリの使用者は何も覚えておく必要がないためです。
  • シバン行を次のように変更します。#!/usr/bin/env ruby -rubygems これは、Ruby インタープリターに ruby​​gems を要求するように指示しますが、ユーザーがruby何らかの理由で RubyGems に腹を立てている場合は、ファイルを直接送信することでこれを回避できます。
  • 常に withrubyを使用して実行します-rubygems。たとえば、ruby -rubygems my_app.rb これはコード内の RubyGems に依存せず、動作しますが、毎回実行することを覚えておく必要があり、これは多少面倒です。
于 2012-07-16T18:08:48.887 に答える