· 3 min read
Edge Rails installieren und ausführen
Aus dem Stammverzeichnis Ihrer Rails-Anwendung geben Sie Folgendes ein:
$ rake rails:freeze:edge
Sobald dieser Befehl ausgeführt worden ist, starten Sie den Server neu, und Ihre Anwendung wird unter Edge Rails ausgeführt.
Steht Ihr Projekt unter der Kontrollevon Subversion, können Sie die Vorteile von Subversions externen Definitionen nutzen, um es anzuweisen, den Inhalt eines bestimmten Unterverzeichnisses aus einem separaten Repository einzulesen. Zu diesem Zweck setzen Sie die Eigenschaft svn:externals mit dem Befehl svn propedit.
$ svn propedit svn:externals vendor
svn propedit öffnet Ihren Standard-Editor, wo Sie den folgenden Wert für die Eigenschaft eingeben:
rails http://dev.rubyonrails.org/svn/rails/trunk/
Wenn Sie die Datei speichern und den Editor verlassen, sehen Sie folgende Message:
Set new value for property 'svn:externals' on 'vendor'
Nun wollen Sie die gerade vorgenommene Änderung am vendor-Verzeichnis übernehmen und optional noch überprüfen, ob die Eigenschaft auch wirklich gesetzt wurde:
$ svn ci -m 'Externals für vendor so angepasst, dass aus dem Rails-Zweig gelesen wird'
Sending vendor
Committed revision 4.
$ svn proplist --verbose vendor
Properties on 'vendor':
svn:externals : rails http://dev.rubyonrails.org/svn/rails/trunk/
Ist die Eigenschaft externals auf vendor gesetzt, wird bei der nächsten Aktualisierung Ihres Projekts mit svn das vendor-Verzeichnis die neueste Rails-Version aus dem Stamm ziehen:
$ svn update
Diskussion
Edge Rails ist ein Begriff für die neueste und aktuellste Version von Rails. (Mit anderen Worten also die Version, die vom Rails-Kernteam gerade entwickelt wird.) Normalerweise verwendet eine neue Rails-Anwendung die Rails-Pakete im gem-Pfad Ihrer Ruby-Installation. Der Befehl rake rails:freeze:edge führt einen Subversion-Export der neuesten Rails-Version aus dem öffentlichen Subversion-Repository (http://dev.rubyonrails.org/svn/rails/trunk) durch. Ein Subversion-export (svn export) lädt alle Projektdateien aus dem Repository, aber ohne die Subversion-Metainformationen (.svn-Verzeichnisse), die bei einem svn checkout enthalten wären. Die heruntergeladenen Rails-Pakete werden unter vendor/rails in Ihrem Projektverzeichnis abgelegt. Beim Neustart des Servers wird die in vendor/rails installierte Version verwendet und nicht die Version, die im gem-Pfad Ihres Systems steht.
Der Betrieb von Edge Rails ist eine großartige Möglichkeit, um sich anzusehen, was einem in der nächsten öffentlichen Release von Rails zur Verfügung steht. Der Code ist üblicherweise recht stabil, aber es gibt keine Garantie dafür, wie die API in Zukunft aussehen mag. Eine mögliche Lösung für den Umgang mit unerwarteten API-Änderungen ist eine sorgfältige Testsuite für Ihre Anwendungen. Wenn Sie das neueste Edge Rails herunterladen und einer Ihrer Tests fehlschlägt, können Sie zu einer früheren Edge-Version zurückkehren, indem Sie die Subversion-Revisionsnummer im rails:freeze:edge-Befehl angeben. Der folgende Befehl kehrt beispielsweise zur Version 3495 zurück:
$ rake rails:freeze:edge REVISION=3495
Der Befehl entfernt zuerst das vendor/rails-Verzeichnis (wenn es existiert) und lädt dann die angegebene Revision aus dem Rails Subversion-Repository herunter. Sie können eine bestimmte Edge-Version auch auschecken, indem Sie ein Tag angeben. So können Sie z.B. Rails 1.1.2 wie folgt auschecken:
$ rake rails:freeze:edge TAG=rel_1-1-2
Wurde Ihre Anwendung mit Edge Rails ausgeführt und sollen nun die Rails-Pakete und -Gems der Ruby-Systeminstallation verwendet werden, führen Sie Folgendes aus:
$ rake rails:unfreeze
Damit entfernen Sie einfach das vendor/rails-Verzeichnis, und Ihre Anwendung läuft unter der auf Ihrem System installierten Rails-Version.
Wenn Sie mit Mac OS X oder einer GNU/Linux-Umgebung arbeiten, können Sie schnell und einfach zwischen mehreren Versionen von Edge Rails hin und her schalten oder Ihre Rails-Anwendungen mittels freeze/unfreeze »einfrieren« und wieder freigeben, selbst wenn Sie nicht über eine Internetanbindung verfügen. Zu diesem Zweck müssen Sie jede benötigte Edge Rails-Version in ein eigenes Verzeichnis auschecken. Wenn Sie dann Ihre Rails-Anwendung für eine bestimmte Version von Edge Rails einfrieren wollen, erstellen Sie einfach einen symbolischen Link des entsprechenden Versionsverzeichnisses für vendor/rails und starten den Server neu. Um wieder zu Ihrer regulären Rails-Version zu gelangen, entfernen Sie einfach den symbolischen Link und starten den Server neu.
Dieses Rezept stammt aus dem Rails Kochbuch, veröffentlicht beim O’Reilly Verlag