Installieren von Ruby 1.9.2 unter Ubuntu mit Chef und Vagrant

8

Ich möchte eine neue Ubuntu 10.04-Box mit Ruby 1.9.2 bereitstellen. Ich verwende Vagrant und Chef Solo, um die Box mit allem, was ich brauche, zu versorgen (z. B. Rails, Rake, MongoDB). Die Standard-Ruby-Version ist 1.8.7.

Gibt es eine Möglichkeit, Ruby 1.9.2 als Teil des Bereitstellungsprozesses von Vagrant / Chef zu installieren?

Ich habe auf der Chef-Website gelesen, dass ich meine eigene Bootstrap-Vorlage verwende - möglicherweise mit einem Messer - wie dieser >, aber weil ich Vagrant benutze, bin ich mir nicht sicher, wo ich diese Vorlage ablegen soll - ich habe kein Chef-Repo, kein .chef-Verzeichnis oder sogar irgendwelche Koch-Sachen in / etc / chef.

    
Paul Carvill 22.10.2011, 12:58
quelle

3 Antworten

11

Zuerst ein bisschen Kontext. Die meisten Vagrant-Basisboxen installieren Ruby für die Verwendung durch Chef und Puppet, aber die neuesten tun dies in / opt / ruby, anstatt die Systempakete zu verwenden. Sie fügen auch / opt / ruby ​​/ bin dem Pfad hinzu, aber am Ende.

Diese VeeWee-Vorlage zeigt, wie die 10.04-Box derzeit aufgebaut ist: Ссылка

Was Ihre Frage betrifft, gibt es mehrere verschiedene Kontexte, die Sie versuchen könnten zu adressieren, jede mit einer anderen Lösung. Hoffentlich ist einer von denen, was Sie suchen.

Führe Kochrezepte mit 1.9.2

aus

Vielleicht möchten Sie die Kochrezepte unter 1.9.2 testen und 1.8.7 nicht in Ihrer Nähe haben. Der beste Weg, dies zu erreichen, wäre, eine eigene VeeWee Vorlage zu erstellen und eine neue Basisbox zu erstellen. Sie könnten die oben verlinkte Version ändern, um 1.9.2 statt 1.8.7 zu kompilieren und den Anweisungen auf Ссылка

folgen

Entwickeln Sie mit Ruby 1.9.2

Wahrscheinlich ist es wahrscheinlicher, dass Sie mit 1.9.2 etwas Ruby-Code hacken wollen. Dazu müssen Sie nur Ruby installieren und die Binärdateien auf Ihrem Pfad vor dem / opt / ruby-Eintrag haben. Dazu gibt es mehrere Möglichkeiten:

  • Kompiliere Ruby von Grund auf selbst
  • Verwenden Sie ein Paket. Die apt-Pakete in lucid geben Ihnen nicht 1.9.2, so dass Sie Ihre eigenen rollen können, wenn Sie möchten. Oder hier ist eine, die ich gerade verwende Ссылка
  • Benutze sowas wie RVM Ссылка

All dies könnte mit einem Chefrezept verwaltet werden. Ich würde wahrscheinlich nicht für die Kompilierungsoption gehen, entweder nur eine direkte Download-und Paket-Ressource oder das folgende RVM Kochbuch könnte praktisch Ссылка für RVM.

Die * gem_binary * -Option auf der Paketressource könnte hier auch nützlich sein, je nachdem, wie Sie sicherstellen möchten, dass Edelsteine ​​für Ihren neuen 1.9.2 Ruby installiert werden (statt 1.8.7 in opt)

Das Ziel von knife bootstrap besteht darin, Chef auf dem Zielsystem zu installieren, damit es den Chef-Client ausführen kann. In den Vagrant-Basisboxen ist der Chef bereits installiert. Wenn Sie also nichts Bestimmtes tun und mehrere Versionen von Chef ausführen möchten, würde ich diesen Weg vermeiden. Die eingebauten Küchenchefs wie Ссылка sind eine bessere Wahl.

    
Garethr 22.10.2011, 19:04
quelle
2

Ich weiß, dass die Frage ziemlich alt ist und bereits beantwortet wurde, aber ich hoffe, dass dies für jemanden, der über diese Frage stolpert, immer noch interessant sein kann.

Ich habe ein Github-Repo erstellt, das mehrere Konfigurationen für das Bauen und Bereitstellung einer Vagrant-Box , ohne dass ein Bereitstellungsrezept von Grund auf neu erstellt werden muss. .

Wenn Sie beispielsweise die aktuell zur Verfügung gestellte Konfiguration verwenden, können Sie eine Box mit folgenden Elementen erstellen und bereitstellen:

  • Ruby 1.9.2-p290, verwaltet mit rbenv und Bundler für Edelsteine ​​verwenden
  • PostgreSQL 8.4
  • MongoDB

Hier ist eine Einführung Artikel auf meinem Blog.

Da dies fast der Anfrage entspricht, habe ich das Gefühl, dass es sich lohnt, diese späte Antwort hinzuzufügen:)

    
rchampourlier 20.05.2012 08:10
quelle
0

Hier ist das Rezept, das ich verwende, um Ruby 1.9.2 zu installieren

%Vor%     
Paul Carvill 23.10.2011 23:02
quelle

Tags und Links