неопределенный метод get_uptime для Facter :: Util :: Uptime: Module (NoMethodError) - PullRequest
5 голосов
/ 26 сентября 2010

Я пытаюсь настроить кукольный узел, но rubygems, похоже, не ведет себя.

Если я запускаю facter на cli через собственный двоичный файл (/usr/lib/ruby/gems/1.8/gems/facter-1.5.8/bin/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 и переустановить, а также переустановить гем, но, похоже, ничего не работает.

Я предполагаю, что что-то где-то кешируется, потому что это выдает ту же ошибку, когда я пытаюсь запустить кукольный.

Есть идеи?

1 Ответ

8 голосов
/ 26 сентября 2010

Похоже, вы установили facter вне rubygems перед установкой его с 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 являются просто более старой версией фактора, и если да, то вы сможете удалить их или переместить в каталог с другим именем, и это решит ваши проблемы.

...