2011-10-22 11 views
8

Chciałbym zaopatrzyć się w nowy system Ubuntu 10.04 z Ruby 1.9.2. Używam Vagrant i Chef Solo do zaopatrywania pudełka we wszystko, czego potrzebuję (np. Rails, Rake, MongoDB). Domyślna wersja Ruby to 1.8.7.Instalowanie Ruby 1.9.2 na Ubuntu przy użyciu Chef i Vagrant

Czy istnieje sposób na zainstalowanie Ruby 1.9.2 w ramach procesu obsługi Vagrant/Chef?

Przeczytałem na stronie internetowej szefa kuchni o używaniu własnego szablonu programu startowego - prawdopodobnie z nożem - takiego jak this one, ale ponieważ używam Vagrant, nie jestem pewien, gdzie umieścić ten szablon - nie mam szef kuchni-repo, katalog .chef lub nawet wszelkie rzeczy szefa kuchni zainstalowane w/etc/chef.

Odpowiedz

11

Po pierwsze, trochę kontekstu. Większość baz danych Vagrant instaluje Ruby do użytku przez Chef i Puppet, ale najnowsze robią to w/opt/ruby, zamiast używać pakietów systemowych. Dodają również/opt/ruby ​​/ bin do ścieżki, ale na końcu.

Ten szablon VeeWee pokazuje jak pudełko 10,04 aktualnie budowy: https://github.com/jedi4ever/veewee/blob/master/templates/ubuntu-10.04.3-server-i386/postinstall.sh

Co do Twojego pytania, ich kilka różnych kontekstach może być trudny do rozwiązania, każda z innego rozwiązania. Mam nadzieję, że jedno z nich będzie tym, czego szukasz.

Run Chef recepty z 1.9.2

Możecie być chcąc przetestować działa Chef recepty pod 1.9.2 i 1.8.7 nie chce nigdzie w pobliżu swojej skrzynce. Najlepszym sposobem na rozwiązanie tego problemu byłoby stworzenie własnego szablonu VeeWee i zbudowanie nowego basebox. Można modyfikować jeden powiązany powyżej kompilacji 1.9.2 zamiast 1.8.7 i postępować zgodnie z instrukcjami wyświetlanymi na https://github.com/jedi4ever/veewee

Develop z Ruby 1.9.2

Prawdopodobnie bardziej prawdopodobne jest to, że chcesz się włamać na niektóre Kod Rubika przy użyciu wersji 1.9.2. W tym celu wystarczy zainstalować Ruby i umieścić pliki binarne na ścieżce przed wpisem/opt/ruby. Istnieje kilka sposobów, aby to zrobić:

Wszystko to może być zarządzany za pomocą przepis szefa kuchni. Prawdopodobnie nie wybrałbym opcji kompilacji, pozostawiając tylko zwykły plik do pobrania i pakiet lub poniższa książka kucharska RVM może być przydatna dla RVM pod numerem http://community.opscode.com/cookbooks/rvm.

* przy gem_binary * opcja na zasobie pakietu może również być przydatny tutaj w zależności jak chcesz mieć pewność, perełki instalowane dla nowego 1.9.2 Ruby (zamiast 1.8.7 w OPT)

The celem jest knife bootstrap, aby szef kuchni został zainstalowany w systemie docelowym, aby mógł uruchomić klienta szefa kuchni. Vagrant baseboxes zazwyczaj mają już zainstalowany Chef, więc jeśli nie robisz czegoś konkretnego i chcesz uruchomić wiele wersji Chef, uniknęłbym tej trasy. Wbudowane w szefa kuchni zapaśników jak http://vagrantup.com/docs/provisioners/chef_solo.html są lepszym rozwiązaniem.

+0

Poszedłem dla opcji pakietu, korzystając z pakietu 1.9.2 ty związane, chociaż wydawało mi się, brakowało zależności (libffi5), więc musiałem dodać to również do mojego przepisu. –

0

Oto przepis używam zainstalować Ruby 1.9.2

package "libffi5" do 
    action :install 
    provider Chef::Provider::Package::Apt 
end 

package "ruby-1.9.2" do 
    action :install 
    source "/tmp/vagrant-chef/cookbooks-0/ruby-1.9.2/files/default/ruby-1.9.2-p290_i386.deb" 
    provider Chef::Provider::Package::Dpkg 
end 
2

Wiem, że pytanie jest dość stary i już odpowiedział, ale mam nadzieję, że nadal mogą być interesujące dla kogoś, natrafiają na to pytanie .

I został zbudowany Github repo który zamierza wprowadzić kilka konfiguracje dla budownictwa i zaopatrzenie pole Vagrant bez konieczności napisać przepis zastrzegania od podstaw.

Na przykład, korzystając z obecnie przewidzianej konfigurację, można zbudować i przepis pudełko z:

  • Ruby 1.9.2-p290, udało się rbenv i korzystania Bundler dla klejnotów
  • PostgreSQL 8.4
  • MongoDB

Tutaj jest introduction article na moim blogu.

Ponieważ prawie pasuje do wniosku, że było warto dodać tę późną odpowiedź :)

Powiązane problemy