Ein Gem ist eine Art Programmmbibliothek für Ruby. So ziemlich alle Erweiterungen für Ruby gibt es per Gem. Ein Gem ist dabei nicht auf reinen Ruby-Code beschränkt, es kann auch ohne weiteres eine C-Extension beinhalten. Für einen reibungslosen Ablauf einer Gem-Installation sorgt (hoffentlich) das Ruby-Build-Tool rake. Um Namensverwirrungen vorzubeugen: Mit RubyGems ist die Software selbst gemeint, Gems sind die einzelnen Softwarepakete.
Anmerkung
In vielen Fällen ist die RubyGems-Software nicht mehr aktuell. Die aktuelle RubyGems-Version ist 1.3.6, ein gem update --system sollte auf die aktuelle Version updaten. Die Versionen 1.1.x und 1.2.x von gem haben allerdings Probleme beim Update. Sollte die Meldung Nothing to update erscheinen, kann das Gem "rubygems_update" installiert werden. Anschließend kann mithilfe des dann verfügbaren Programms update_rubygems (ohne gem davor!) die RubyGems-Software aktualisiert werden.
Installation eines Gems
Ein Gem zu installieren ist nicht weiter schwierig. Ist Ruby ordentlich installiert (das heißt, das bin-Verzeichnis ist im PATH), so müsste auf der Konsole das Programm gem zur Verfügung stehen. Um ein Gem zu suchen, kann man das Kommando search verwenden. Der Parameter --remote bewirkt dabei, dass online gesucht wird und nicht auf dem lokalen Rechner. install ist der Befehl, um ein Gem zu installieren. Danach sollte es sofort per require verfügbar sein.
$ gem search hpricot --remote
*** REMOTE GEMS ***
hpricot (0.8.1)
hpricot-scrub (0.2.0)
hpricot_scrub (0.3.7)
rspec_hpricot_matchers (1.0)
# gem install hpricot
...jede Menge Output...
Deinstallation
...funktioniert genauso einfach.
# gem uninstall hpricot
Weitere nützliche gem-Befehle
Vor jedes dieser Kommandos ein gem denken.
-
--version Gibt die RubyGems-Version aus. Aktuell ist 1.3.6.
-
cleanup Entfernt alte Gem-Versionen.
-
env Dies zeigt Informationen über die RubyGems-Umgebung an, u.a. den Installationspfad für Gems, die RubyGems-Version, usw.
-
list --local Gibt eine Liste aller für diese Ruby-Installation installierten Gems aus.
-
outdated Listet alle Gems, die geupdated werden müssen.
-
push Veröffentlicht ein Gem auf rubygems.org, sodass es per install installiert werden kann.
-
update Führt ein Generalupdate aller installierten Gems durch.
-
update gem1 gem2 ... Updated nur bestimmte Gems.
-
update --system Essentieller Befehl zum Update der RubyGems-Software selbst.
-
yank Entfernt ein bereits veröffentlichtes Gem wieder vom Index. Es bleibt jedoch für den direkten Download über rubygems.org verfügbar, um das _why-Szenario zu verhindern.
Siehe auch