2010-09-26 24 views
5

Tôi đang cố gắng thiết lập một nút con rối, nhưng rubygem dường như không hoạt động.phương thức undefined get_uptime cho Facter :: Util :: Uptime: Module (NoMethodError)

Nếu tôi chạy facter trên cli thông qua nhị phân riêng của nó (/usr/lib/ruby/gems/1.8/gems/facter-1.5.8/bin/facter), nó hoạt động tốt, nhưng nếu tôi chạy qua nhị phân được cài đặt bởi rubygems (/ usr/bin/facter), nó ném:

/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 

tôi đã thử gỡ bỏ và cài đặt lại rubygems cũng như cài đặt lại viên ngọc, nhưng không có vẻ làm việc.

Tôi giả sử một thứ gì đó được lưu vào bộ nhớ cache ở đâu đó, bởi vì nó ném cùng một lỗi khi tôi cố gắng chạy con rối.

Bất kỳ ý tưởng nào?

Trả lời

8

Có vẻ như bạn đã cài đặt facter bên ngoài rubygems trước khi cài đặt nó bằng rubygems.

Bạn sẽ nhận thấy tệp cuối cùng trong ngăn xếp là /usr/lib/ruby/1.8/facter/uptime.rb thay vì là tệp trong /usr/lib/ruby/gems/1.8/gems/facter-1.5.8.

Bạn nên kiểm tra xem các tệp trong /usr/lib/ruby/1.8/facter thực sự chỉ là một phiên bản cũ hơn và nếu có, bạn sẽ có thể xóa chúng hoặc chuyển chúng sang một thư mục có tên khác và nó sẽ khắc phục sự cố của bạn.

+1

rực rỡ, cảm ơn! nó đã được cài đặt thông qua apt-get. Loại bỏ nó và loại bỏ đá quý, cài đặt lại và nó hoạt động tốt ngay bây giờ. –

Các vấn đề liên quan