2013-05-31 23 views
8

Bir vagrant yüklemeyi deniyorum ve varsayılan Ruby sürümü olarak 1.9.3-p327 olmasını istiyorum. serseri makineyi yönetmek için şef-solo ve kütüphaneci-şef kullanıyorum. şef-soloVagrant rbenv 1.9.1 üzerinde ruby ​​yükleme NoMethodError loaded_recipe?

benim serseri dosya provizyon bu

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 

ve kütüphaneci-cheff bu

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' 

gibi görünüyor arar ve bu ikisinden i muktedir gerektiğini cheffile benziyor vagrant dosyasını çalıştırmak maalesef şef-solo ruby ​​versiyonunu belirttiğim yerde bomba gibi görünüyor. dün öğleden sonra çalışıyordu ve bu da bana birisinin o zaman ve şimdi arasındaki bir yemek kitabını güncellediğini düşünmeme yol açtı. bu yüzden kütüphaneci-şef yüklemek aradığında onu çekti ve ben sonra çalışır yakut sürümünü belirten json dışarı yorum yaparsanız ..

================================================================================ 
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. 

çıldırdı etti. Hastaların rbenv versiyonlarını belirtmek zorunda oldukları, ancak güvenilir sürümlerin neler olduğu ve onları nerede bulabileceğimiz gibi görünüyor.

Düzenleme: Ayrıca json kullanıcı bilgilerini belirtmeniz gerekir. Sistem ve kullanıcı (vagrant) seviyelerine kurulumunuzdan beri. ve şef, vagrant kutusunun sağladığı yakutu kullanıyor. Burada rbenv json için güncellenmiş ruby ​​versiyonumun nasıl göründüğü.

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' } 
      ] 
     } 
     } 
    ] 
    }, 

cevap

7

Bu, bu yemek kitabının kullandığı (olağandışı) sürüm oluşturma sistemi nedeniyle görünüyor. Ancak ana şubeleri kararlı değil, ancak en son etiketlenen sürüme geri dönerseniz, hata gider. Ben kütüphaneci-şef yerine Berkshelf kullanmak ama yine benim sabit Berkshelf hattını içerecektir yüzden sözdizimi hemen hemen aynı görünüyor:

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

ref: önemli parçasıdır. Bu benim için hatayı düzeltti!

+0

Teşekkürler! işe yaradı. gerçekten garip, serseri ile ilgili tüm bloglar ve raylar env kurmadan bahsetmiyorum. – TheLegend

İlgili konular