Facter :: Util :: Uptime fore_uptime的未定义方法get_uptime ::正常运行时间:模块(nomethoderror)

StackOverflow https://stackoverflow.com/questions/3798107

  •  05-10-2019
  •  | 
  •  

我正在尝试设置一个木偶节点,但Rubygems似乎并没有表现。

如果我通过自己的二进制(/usr/lib/ruby/gems/1.8/gems/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

我尝试删除红宝石和重新安装并重新安装宝石,但似乎无济于事。

我假设某些东西被缓存在某个地方,因为当我试图运行木偶时,它会引起相同的错误。

有任何想法吗?

有帮助吗?

解决方案

看起来您可能已经安装了 facter 在使用红宝石之前,在红宝石之外。

您会注意到StackTrace中的最终文件是 /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 确实只是较旧的因素版本,如果是这样,您应该能够将它们删除或将其移至不同名称的目录,并将解决您的问题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top