安装gem没有效果(也就是如何使用check_puppet.rb)

时间:2011-11-21 12:36:03

标签: ruby gem puppet

我确信这个问题对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)
  • 这个宝石安装在哪里?
  • 为什么脚本无法加载sys-proctable lib?
  • %& $ @ 我做错了什么?
  • gem的官方文件在哪里?

2 个答案:

答案 0 :(得分:3)

安装了gem - 但是在Ruby 1.8中你需要有一行:

require 'rubygems'

使用rubygems。这会改变“要求”。函数,所以当你要求它时会拉入rubygems。

所以在剧本中:

https://github.com/puppetlabs/puppet/blob/master/ext/nagios/check_puppet.rb

只需在顶部附近添加需求,然后重试。

有关使用rubygems的其他方法的说明,请参阅Rubygems文档:

http://docs.rubygems.org/read/chapter/3#page70

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