要求加载错误
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
,然后尝试 运行 编写您的脚本。
应该可以。
我有一个简单的 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
,然后尝试 运行 编写您的脚本。
应该可以。