2

Boxcar 経由で通知を送信するスクリプトを作成したところ、問題が発生しました。スクリプトは#!/usr/bin/env ruby先頭に設定されていますが、SABnzb が後処理スクリプトをトリガーすると、次のエラーが発生します。

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- boxcar_api (LoadError) from
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require' from /Applications/Sick-Beard/autoProcessTV/sabnzb-notification.rb:4

さらに、ターミナルからスクリプトを実行すると、問題なく実行されます。SABnzb が後処理で実行する場合のみです。

を実行するwhich rubyruby -v/usr/bin/env ruby -vすべて適切なバージョンの Ruby が出力されます。

$ which ruby
/Users/ericc/.rvm/rubies/ruby-1.9.3-p286/bin/ruby
$ ruby -v
ruby 1.9.3p286 (2012-10-12 revision 37165) [x86_64-darwin12.2.0]
$ /usr/bin/env ruby -v
ruby 1.9.3p286 (2012-10-12 revision 37165) [x86_64-darwin12.2.0]
$ rvm -v
rvm 1.16.13 (master) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]

~/.bash_profile

export PATH="/usr/local/bin:/usr/local/sbin:~/bin:$PATH"
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function

RVM の代わりに Ruby 1.8 がロードされている理由について、誰か考えがありますか?

4

2 に答える 2

1

SABnzb は、rvm インストールを認識しない環境で開始されています。これに対処するには、いくつかの方法があります。

  1. スクリプトが呼び出しているルビについて明示してください。(つまり、シバンをに変更します#!/Users/ericc/.rvm/rubies/ruby-1.9.3-p286/bin/ruby
  2. スクリプトを呼び出す前に、環境を設定するラッパー シェル スクリプトを記述します。最初に SABnzb にラッパー スクリプトを呼び出させます。
  3. SABnzb を開始する init スクリプトを編集し、rvm 環境を追加します。これは、rvm がインストールされているユーザーとして SABnzb が開始されている場合にのみ機能します。
  4. SABnzb が rvm インストールとは異なるユーザーとして実行されている場合は、rvm をグローバルにインストールするか、SABnzb を実行している同じユーザーとしてインストールしてから、SABnzb init スクリプトを編集して rvm 環境設定スクリプトを作成します。
于 2012-10-14T19:03:08.540 に答える
0

あなたrvm use ruby-1.9.3-p286 --defaultのために働きますか?

于 2012-10-14T17:28:16.457 に答える