我正在尝试设置一个傀儡节点,但是rubygems似乎不起作用。
如果我通过cli自己的二进制(/usr/lib/ruby/gems/1.8/gems/facter-1.5.8/bin/facter),在cli上运行facter,它工作得很好,但如果我通过rubygems安装的二进制文件(/usr/bin/facter)运行它,它会抛出:
/usr/lib/ruby/1.8/facter/uptime.rb:11: undefined method `get_uptime' for Facter::Util::Uptime:Module (NoMethodError)
from /usr/lib/ruby/gems/1.8/gems/facter-1.5.8/lib/facter/util/loader.rb:73:in `load'
from /usr/lib/ruby/gems/1.8/gems/facter-1.5.8/lib/facter/util/loader.rb:73:in `load_file'
from /usr/lib/ruby/gems/1.8/gems/facter-1.5.8/lib/facter/util/loader.rb:38:in `load_all'
from /usr/lib/ruby/gems/1.8/gems/facter-1.5.8/lib/facter/util/loader.rb:33:in `each'
from /usr/lib/ruby/gems/1.8/gems/facter-1.5.8/lib/facter/util/loader.rb:33:in `load_all'
from /usr/lib/ruby/gems/1.8/gems/facter-1.5.8/lib/facter/util/loader.rb:30:in `each'
from /usr/lib/ruby/gems/1.8/gems/facter-1.5.8/lib/facter/util/loader.rb:30:in `load_all'
from /usr/lib/ruby/gems/1.8/gems/facter-1.5.8/lib/facter/util/collection.rb:90:in `load_all'
from /usr/lib/ruby/gems/1.8/gems/facter-1.5.8/lib/facter.rb:95:in `to_hash'
from /usr/lib/ruby/gems/1.8/gems/facter-1.5.8/bin/facter:137
from /usr/bin/facter:19:in `load'
from /usr/bin/facter:19我试着删除rubygems并重新安装,以及重新安装gem,但似乎都不起作用。
我假设有一些东西被缓存在某个地方,因为当我试图运行puppet时,它会抛出同样的错误。
有什么想法吗?
发布于 2010-09-27 02:02:45
看起来你可能已经在rubygems之外安装了facter,然后再用rubygems安装它。
您将注意到,堆栈跟踪中的最后一个文件是/usr/lib/ruby/1.8/facter/uptime.rb,而不是/usr/lib/ruby/gems/1.8/gems/facter-1.5.8中的文件。
您应该检查/usr/lib/ruby/1.8/facter中的文件是否确实只是较旧版本的factor,如果是这样,您应该能够删除它们或将它们移动到不同名称的目录,它将修复您的问题。
https://stackoverflow.com/questions/3798107
复制相似问题