我确信这个问题对Ruby用户来说很简单。但对我来说,这是一个我自己无法弄清楚的问题。
我的目标是在Ubuntu-10.4系统上使用Puppet存档(ext / nagios / check_puppet.rb)中包含的脚本。
我尝试启动脚本:
$ sudo ./check_puppet.rb
./check_puppet.rb:4:in `require': no such file to load -- sys/proctable (LoadError)
from ./check_puppet.rb:4
好的,所以有些东西不见了。我想知道我需要一些名为sys-proctable的库http://raa.ruby-lang.org/project/sys-proctable/
wget http://rubyforge.org/frs/download.php/65609/sys-proctable-0.9.0-x86-linux.gem
[...]
sudo apt-get install rubygems
[...]
$ sudo gem install sys-proctable-0.9.0-x86-linux.gem
Successfully installed sys-proctable-0.9.0-x86-linux
1 gem installed
Installing ri documentation for sys-proctable-0.9.0-x86-linux...
Installing RDoc documentation for sys-proctable-0.9.0-x86-linux...
到目前为止,一切看起来都很不错!是时候再次启动脚本了
$ sudo ./check_puppet.rb
./check_puppet.rb:4:in `require': no such file to load -- sys/proctable (LoadError)
from ./check_puppet.rb:4
gem list
输出告诉我:
$ gem list
*** LOCAL GEMS ***
sys-proctable (0.9.0)
gem
的官方文件在哪里?答案 0 :(得分:3)
安装了gem - 但是在Ruby 1.8中你需要有一行:
require 'rubygems'
使用rubygems。这会改变“要求”。函数,所以当你要求它时会拉入rubygems。
所以在剧本中:
https://github.com/puppetlabs/puppet/blob/master/ext/nagios/check_puppet.rb
只需在顶部附近添加需求,然后重试。
有关使用rubygems的其他方法的说明,请参阅Rubygems文档:
答案 1 :(得分:0)
这就是我对centos 6.4的了解
sudo ./check_puppet.rb
./check_puppet.rb:75:in `-': no implicit conversion to float from nil (TypeError)
from ./check_puppet.rb:75:in `check_state'
from ./check_puppet.rb:122
我添加了''rubygems'
并安装了sys-proctable