|
Du bist hier:
Hinterkattentuffel -
Ruby -
RubyGems, der Ruby Paketmanager Prev: Anonym und dynamisch: Blöcke |
|
Spätetstens seit Ruby 1.8.2 bietet der Paketmanager "RubyGems" eine einfache Möglichkeit, Ruby-Programme mit all ihren Abhängigkeiten zu verwalten. Ruby-Programme sind nun als Gems paketiert und nach dem Herunterladen per Paketmanager zu installieren. Unter Windows findet man diesen Paketmanager im Startmenü bei den anderen Ruby-Einträgen. Man muss ihn derzeit zwar noch über die Kommandozeile bedienen, aber das ist angesichts der wenigen benötigten Befehle recht einfach. Nehmen wir an, wir haben ein Gem aus dem Internet heruntergeladen, etwa Piggy-4.0.0.gem nach C:\temp. Installiert wird dieses Gem jetzt ganz einfach mit: gem install C:\temp\Piggy-4.0.0.gem Der Paketmanager installiert das Gem in ein separates Verzeichnis der lokalen Ruby-Installation. Bei Ruby 1.8.2 ist das standardmäßig C:\ruby\lib\ruby\gems\1.8\gems. Nach der Installation kann man die Datei C:\temp\Piggy-4.0.0.gem löschen, sie wird zur Ausführung nicht mehr benötigt. Wie aber wird man das installierte Gem später wieder los? Das geht auch über den Paketmanager: gem uninstall Piggy Wer selbst ein Gem erstellen möchte, kann in der zweiten Auflage von Programming Ruby nachlesen. Den Teil über Gems gibt es als PDF-Extrakt im Internet (englisch). Eine weitere Quelle ist der (leider etwas durch Spam verunstaltete) RubyGem Wiki. Für den Anfang reicht es aus, pro Anwendung ein Verzeichnis zu erstellen und die Ruby-Dateien in ein Unter-Verzeichnis lib auszulagern. In das Hauptverzeichnis der Anwendung stellt man eine Datei anwendung.gemspec.rb, die den Code zur Erstellung des Gem enthält. Hier ein Beispiel für so eine Spezifikationsdatei: gemspec.rb.txt. Im Beispiel werden alle Dateien aus der Dateiliste herausgefiltert, die nicht mit paketiert werden sollen. Dazu gehören Sicherheitskopien oder die Gem-Spezifikation selbst. Je nach verwendeter Programmierumgebung (Editor, Versionskontrollsystem) sind andere Filter sinnvoll. RubyGems nimmt dem Programmierer vor allem die Manipulation von Ruby-Umgebungsvariablen ab und sorgt für einheitliche Verzeichnisstrukturen. Der Anwender profitiert vor allem durch die Verwaltung von Abhängigkeiten zwischen verschiedenen Gems. In voller Schönheit bekommt man RubyGem erst bei der Installation von Gems aus dem Internet zu sehen. Dafür gibt es die Option -r, die Liste der Gems findet man unter Gems bei rubyforge. Eine Installation sieht dann etwa so aus: CMD>gem install -r fxruby Attempting remote installation of 'fxruby' Updating Gem source index for: http://gems.rubyforge.org Select which gem to install for your platform (i386-mswin32) 1. fxruby 1.2.2 (mswin32) 2. fxruby 1.2.2 (ruby) 3. fxruby 1.2.1 (ruby) 4. fxruby 1.2.1 (mswin32) 5. Cancel installation CMD>1 Successfully installed fxruby, version 1.2.2 Installing RDoc documentation for fxruby-1.2.2-mswin32... So eine Remote-Installation kann allerdings je nach Gem und Internetanbindung ein Weilchen dauern. Ich nehme mir gelegentlich die Zeit, über gem update alle intallierten Gems zu aktualisieren. Ein anschließendes gem cleanup entfernt nicht mehr benötigte, ältere Versionen. Das funktioniert nicht? Dann mit gem --version prüfen, ob eine veraltete Version des gem Kommandos installiert ist. Version 0.8.10 darf es schon sein (ab Windows-Installer-Version 1.8.2-15 mit dabei). Für ein Upgrade von gem 0.8.3 auf 0.8.10 musste man zumächst das gem rubygems-update installieren und dann update_rubygems aufrufen. Das geht in Zukunkt einfacher mit gem update --system. Erfordert der Internetzugang die Angabe eines Proxyservers, so reicht es, dessen URL über die Umgebungsvariable HTTP_PROXY bekanntzumachen. Dies wird z. B. dann nötig sein, wenn man hinter einer Firmenfirewall arbeitet. Wer ein neues Ruby-Projekt passend für RubyGems aufsetzen möchte, kann dies auch mit Unterstützung von Hoe tun. |
| Weiter mit meinen Rubyprojekten |