Utilizzando chef
Ho una ricetta semplice che installa un gioiello, esempio:Chef Ohai: Come usare appena installato rubino con gem_package
gem_package "passenger" do
version node['passenger']['version']
end
Voglio anche installare Ruby con un altro libro di cucina, potrebbe essere Ruby 1.9 .3 per alcuni server e Ruby Enterprise 1.8.7 per altri. Così ho pensato che avrei potuto usare gem_binary
e ohai
per fare questo, come questo:
gem_package "passenger" do
version node['passenger']['version']
gem_binary "#{languages['ruby']['bin_dir']/gem}"
end
Ma poi iniziano i problemi, perché languages['ruby']
non viene modificato quando viene installata una nuova rubino. Ruby Enterprise si installa in /opt/ruby-enterprise
e si aggiunge a PATH
tramite /etc/profile.d/ree.sh
ma non viene prelevato dallo ohai
durante la stessa esecuzione, ma viene raccolto nella corsa successiva.
Nella prima manche, ohai
dice che languages['ruby']
è installato in /opt/vagrant_ruby/bin/ruby
quando viene utilizzato con vagrant
e chef_solo
disposizione. E la gemma del passeggero viene installata nel rubino sbagliato.
Come posso rendere ohai
riconoscere il rubino appena installato?
non c'è un modo per aggiornare i 'lingue ohai attributo automatica [ 'ruby'] [ 'gem_bin']' a guardare il nuovo binario gemma installato? – Evgeny