0

我确信这个问题对于 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 安装在哪里?
  • 为什么脚本不能加载 sys-proctable 库?
  • %&$@我做错了什么?
  • 的官方文档在哪里gem
4

2 回答 2

3

gem 已安装 - 但在 Ruby 1.8 中,您需要有以下行:

require 'rubygems'

使用红宝石。这会更改“require”功能,因此当您要求它时它会拉入 ruby​​gems。

所以在脚本中:

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

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

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

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

于 2011-11-21T14:00:58.933 回答
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

于 2013-05-02T00:14:24.093 回答