3

私が抱えている奇妙な Ruby Gem の問題を解決できる人はいますか? 過去に多くの gem をインストールしましたが、これを見たことがないことに注意してください。

次のコマンドを使用して、net-ssh および net-sftp gem をダウンロードしました。

sudo gem install net-ssh
sudo gem install net-sftp

両方とも正常にインストールされました。ただし、コード内でファイルを参照すると、次のエラーが発生します。

./workers/ffmpeg_worker.rb:6:in `require': no such file to load -- net/ssh (LoadError)
    from ./workers/ffmpeg_worker.rb:6
    from ./workers/tests/test_ffmpeg_worker.rb:3:in `require'
    from ./workers/tests/test_ffmpeg_worker.rb:3
    from /Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake/rake_test_loader.rb:5:in `load'
    from /Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake/rake_test_loader.rb:5
    from /Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake/rake_test_loader.rb:5:in `each'
    from /Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake/rake_test_loader.rb:5
rake aborted!
Command failed with status (1): [/System/Library/Frameworks/Ruby.framework/...]

私がするときの注意:

gem list --local

宝石は次のようにリストされています。

net-scp (1.0.2)
net-sftp (2.0.2, 1.1.0)
net-ssh (2.0.15, 1.1.2)
net-ssh-gateway (1.0.1)

手がかりはありますか?

4

1 に答える 1

3

この種のことを見ると、通常、マシンに複数のRubyがインストールされていて(つまり、複数のgemの場所など)、さまざまなアプリや環境がどれをロードするかについて混乱しています。

最初にそれを確認してください。それが答えではない場合はgem which net/ssh、RubyGemsがgemがインストールされていると見なす場所を確認してください。ローカルユーザーの.gemsディレクトリなどではないことを確認してください。

どちらも謎を解かない場合は、デバッグコードをワーカースクリプトに貼り付けて、ロードパス($ :)を出力させて、どこを見ているかを確認できるようにします。

于 2009-10-28T02:38:28.943 に答える