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 回答