要求加载错误

LoadError on require

我有一个简单的 ruby 脚本,它使用 net-ping gem 我已经安装了 gem install net-ping 并确认它已经安装:

Successfully installed net-ping-1.7.8
Parsing documentation for net-ping-1.7.8
Done installing documentation for net-ping after 0 seconds
1 gem installed

在我的脚本中: 需要 'net/ping'

def can_ping(host)
  @icmp = Net::Ping::ICMP.new(host)
  if @icmp.ping
    can_ping = true
  else
    can_ping = false
  end
end

can_ping(www.google.com)

在 irb 中这一切工作正常,但是当尝试 运行 我的脚本时,它没有。相反,我现在收到此错误:

/Users/golem/.rvm/rubies/ruby-2.1.4/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- net/ping (LoadError)
from /Users/golem/.rvm/rubies/ruby-2.1.4/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from checkin.rb:2:in `<main>'

这在我的脚本的旧版本上工作得很好,但是,我已经在我的 Mac 上安装了 Oh-My-Zsh,我怀疑这是问题所在。

所以,我确保我的环境变量引用 RVM (printenv):

rvm_prefix=/Users/golem
rvm_path=/Users/golem/.rvm
rvm_bin_path=/Users/golem/.rvm/bin

我还遗漏了其他可能导致此问题的原因吗?

因此,net ping 需要 root 权限才能 运行。因此,如果您使用 sudo,则需要重新安装 gem。因此,首先执行 sudo su,然后再执行 运行 gem install net-ping:1.7.8,然后尝试 运行 编写您的脚本。

应该可以。