2013-05-31 39 views
8

Tôi đang cố gắng cài đặt lang thang và muốn có 1.9.3-p327 làm phiên bản mặc định của ruby. tôi đang sử dụng đầu bếp-solo và thủ thư-đầu bếp để quản lý máy lang thang.Cài đặt ruby ​​1.9.3 trên mục rrantv NoMethodError loaded_recipe?

cung tập lang thang của tôi cho đầu bếp-độc tấu trông như thế này

config.vm.provision :chef_solo do |chef| 
chef.cookbooks_path = "cookbooks" 
chef.add_recipe "apt" 
chef.add_recipe "build-essential" 
chef.add_recipe "git" 
chef.add_recipe "ruby_build" 
chef.add_recipe "rbenv::system" 
chef.add_recipe "rbenv::vagrant" 
chef.add_recipe "sqlite" 
chef.add_recipe "nodejs" 
chef.add_recipe "mysql" 
chef.add_recipe "redisio" 
chef.add_recipe "redisio::install" 
chef.add_recipe "redisio::redis_gem" 
chef.add_recipe "zlib" 
chef.add_recipe "wkhtmltopdf" 

chef.json = { 
    "rbenv" => { 
    "rubies" => [ "1.9.3-p327" ], 
    "global" => "1.9.3-p327", 
    "gems" => { 
     "1.9.3-p327" => [ 
     { "name" => "bundler" } 
     ] 
    } 
    } 
} 
end 

và cheffile rằng thư viện-cheff trông sẽ như thế này

site 'http://community.opscode.com/api/v1' 

cookbook 'apt' 
cookbook 'git' 
cookbook 'build-essential' 
cookbook 'rbenv', 
    git: 'https://github.com/fnichol/chef-rbenv.git' 
cookbook 'ruby_build' 
cookbook 'sqlite', 
    git: 'git://github.com/opscode-cookbooks/sqlite.git' 
cookbook 'nodejs', 
    git: 'http://github.com/mdxp/nodejs-cookbook' 
cookbook 'mysql', 
    git: 'git://github.com/opscode-cookbooks/mysql.git' 
cookbook 'redisio', 
    git: 'git://github.com/brianbianco/redisio.git' 
cookbook 'zlib', 
    git: 'git://github.com/opscode-cookbooks/zlib' 
cookbook 'wkhtmltopdf', 
    git: 'git://github.com/firstbanco/chef-wkhtmltopdf.git' 

và từ hai tôi sẽ có thể chạy các tập tin lang thang không may nó trông như thể tôi đang chỉ định phiên bản của ruby ​​để đầu bếp solo là ném bom ra ngoài. nó đã làm việc chiều hôm qua khiến tôi nghĩ rằng ai đó đã cập nhật một cuốn sách dạy nấu ăn từ đó đến giờ. vì vậy khi tôi gọi là thủ thư-đầu bếp cài đặt nó kéo nó và đã freaked ra ..

================================================================================ 
Error executing action `install` on resource 'rbenv_ruby[1.9.3-p327] (system)' 
================================================================================ 

NoMethodError 
------------- 
undefined method `loaded_recipe?' for #<Chef::RunContext:0x7f34cf773ed0> 

Cookbook Trace: 
--------------- 

/tmp/vagrant-chef-1/chef-solo-1/cookbooks/rbenv/providers/ruby.rb:88:in `ruby_build_missing?' 
/tmp/vagrant-chef-1/chef-solo-1/cookbooks/rbenv/providers/ruby.rb:43:in `perform_install' 
/tmp/vagrant-chef-1/chef-solo-1/cookbooks/rbenv/providers/ruby.rb:33:in `class_from_file' 

Resource Declaration: 
--------------------- 
# In /tmp/vagrant-chef-1/chef-solo-1/cookbooks/rbenv/recipes/system.rb 

27: else 
28:  rbenv_ruby rubie 
29: end 

Compiled Resource: 
------------------ 
# Declared in /tmp/vagrant-chef-1/chef-solo-1/cookbooks/rbenv/recipes/system.rb:28:in `from_file' 

rbenv_ruby("1.9.3-p327") do 
    retry_delay 2 
    retries 0 
    recipe_name "system" 
    definition "1.9.3-p327" 
    action :install 
    cookbook_name :rbenv 
end 

[2013-05-31T09:55:55+00:00] ERROR: Running exception handlers 
[2013-05-31T09:55:55+00:00] ERROR: Exception handlers complete 
[2013-05-31T09:55:55+00:00] FATAL: Stacktrace dumped to /tmp/vagrant-chef-1/chef-stacktrace.out 
[2013-05-31T09:55:55+00:00] FATAL: NoMethodError: rbenv_ruby[1.9.3-p327] (system) (rbenv::system line 28) had an error: NoMethodError: undefined method `loaded_recipe?' for #<Chef::RunContext:0x7f34cf773ed0> 
Chef never successfully completed! Any errors should be visible in the 
output above. Please fix your recipes so that they properly complete. 

nếu tôi bình luận ra các json chỉ định phiên bản ruby ​​sau đó nó hoạt động. nó có vẻ như bị bệnh phải xác định các phiên bản của rbenv nhưng những gì là phiên bản đáng tin cậy và nơi tôi có thể tìm thấy chúng.

Chỉnh sửa: bạn cũng sẽ phải chỉ định chi tiết người dùng trong json. kể từ khi bạn cài đặt vào hệ thống và cấp độ người dùng (không thích hợp). và đầu bếp đang sử dụng ruby ​​mà hộp âm đạo cung cấp. đây là những gì phiên bản ruby ​​cập nhật của tôi cho rbenv json trông như thế nào.

chef.json = { 
    'rbenv' => { 
    'user_installs' => [ 
     { 
     'user' => 'vagrant', 
     'rubies' => ['1.9.3-p327'], 
     'global' => '1.9.3-p327', 
     'gems' => { 
      '1.9.3-p327' => [ 
      { 'name' => 'bundler' }, 
      { 'name' => 'rake' } 
      ] 
     } 
     } 
    ] 
    }, 

Trả lời

7

Điều này có vẻ là do hệ thống phiên bản (không thẳng thắn) mà sách nấu ăn này đang sử dụng. Chi nhánh chính của họ không ổn định, tuy nhiên, nếu bạn quay lại phiên bản được gắn thẻ gần đây nhất, lỗi sẽ biến mất. Tôi sử dụng Berkshelf chứ không phải là thư viện đầu bếp nhưng cú pháp trông gần như giống hệt vì vậy tôi sẽ bao gồm dòng Berkshelf cố định của tôi anyway:

cookbook 'rbenv', git: 'git://github.com/fnichol/chef-rbenv.git', ref: "v0.7.2"

Các ref: là bit quan trọng. Điều này đã sửa lỗi cho tôi!

+0

cảm ơn! đã hoạt động. nó thực sự kỳ lạ, tất cả các blog về lang thang và thiết lập đường ray env không đề cập đến điều này. – TheLegend

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