Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby Puppet自定义事实-未初始化常量事实(NameError)_Ruby_Puppet - Fatal编程技术网

Ruby Puppet自定义事实-未初始化常量事实(NameError)

Ruby Puppet自定义事实-未初始化常量事实(NameError),ruby,puppet,Ruby,Puppet,我真的很抱歉,如果我错过了什么,这已经得到了回答,我已经搜索了这个网站,谷歌,但找不到任何东西,来吧 我正在运行Ruby 1.8和Puppet 2.7。我对这两个网站都是新手,但在过去的几周里,我用Puppet做了大量的工作,在不破坏我的网站的情况下触摸木头:) 我现在想写一些习惯事实。我一直在试验电脑上的指令。我已经编写了一个hardware_platform.rb,如下所示: # hardware_platform.rb Facter.add("hardware_platform") do

我真的很抱歉,如果我错过了什么,这已经得到了回答,我已经搜索了这个网站,谷歌,但找不到任何东西,来吧

我正在运行Ruby 1.8和Puppet 2.7。我对这两个网站都是新手,但在过去的几周里,我用Puppet做了大量的工作,在不破坏我的网站的情况下触摸木头:)

我现在想写一些习惯事实。我一直在试验电脑上的指令。我已经编写了一个hardware_platform.rb,如下所示:

# hardware_platform.rb

Facter.add("hardware_platform") do
  setcode do
    Facter::Util::Resolution.exec('/bin/uname -i')
  end
end
我想我应该这样运行它:

# ruby hardware_platform.rb
但当我这样做时,我会得到以下错误:

hardware_platform.rb:3: uninitialized constant Facter (NameError)
有人知道这里可能出了什么问题吗?在我继续前进之前,我需要克服这些


谢谢

您可能在脚本顶部缺少了一个
要求的“facter”
。还可以通过运行
gem install facter

来验证facter gem是否已安装。您可能在脚本顶部缺少
所需的“facter”
。另外,如果您在puppet将查找的ruby lib目录以外的任何地方测试此代码,请通过运行
gem install facter

验证facter gem是否已安装,然后首先设置RUBYLIB。 e、 g.在目录名下测试,创建lib/ruby/facter/hardware\u platform.rb

然后你就可以

export RUBYLIB=/path/to/dir/lib/ruby
然后,你就可以跑了

facter hardware_platform
这会给你一个正确的结果

正如@lucas_clemente所说,您还需要检查系统中是否安装了facter。如果您使用的是yum,只需使用

yum list facter 
如果已安装,则会产生类似的结果;如果未安装,则会显示回购协议中存在的版本:

facter.x86_64        1:1.6.12-2.el5           installed

如果您在puppet将查找的ruby lib目录之外的任何地方测试此代码,那么首先设置RUBYLIB。 e、 g.在目录名下测试,创建lib/ruby/facter/hardware\u platform.rb

然后你就可以

export RUBYLIB=/path/to/dir/lib/ruby
然后,你就可以跑了

facter hardware_platform
这会给你一个正确的结果

正如@lucas_clemente所说,您还需要检查系统中是否安装了facter。如果您使用的是yum,只需使用

yum list facter 
如果已安装,则会产生类似的结果;如果未安装,则会显示回购协议中存在的版本:

facter.x86_64        1:1.6.12-2.el5           installed

谢谢你的回复。我必须执行上述操作,并将RUBYLIB=/path/to/dir/lib/ruby导出到@iamauser下面指定的位置,以使其正常工作。感谢您的回复。我必须执行上面的操作,并将RUBYLIB=/path/to/dir/lib/ruby导出到@iamauser下面指定的位置,以使其正常工作。