Fehleinschätzungen

22 12 2008 - 23:53

Früher dachte ich immer Dinge würden einfach so funktionieren. Quasi Out of the Box. Unter Gentoo (meine letzte Linux-Distribution) war das auch so. Zumindest dachte ich das immer. Man konnte einfach so Ruby und Rubygems installieren. Dazu installierte man sich die Gems die man brauchte und alles funktionierte. Selbst geschriebene Ruby-Skripte konnten auf die installierten Gems zugreifen und sie problemlos verwenden. Die beliebtesten Gems gabs dann auch zum direkten Installieren im Portage Tree.

Nach meinem Umstieg auf Archlinux musste ich dann feststellen dass ich in einer Scheinwelt gelebt hatte, die so gar nicht existiert. Zumindest nicht unter Archlinux. Auch hier konnte man zwar Ruby, Rubygems und die benötigten Gems installieren. Wollte man diese dann aber in eigenen Skripten verwenden monierte der Ruby-Interpreter immer er könne das Gem nicht einbinden da die zugehörige Datei nicht vorhanden sei. Was sie aber doch war. Wovon ich mich auch mittels Rubygems “gem” überzeugen konnte, denn dort konnte ich das Gem in der Liste aller installierten Gems wiederfinden.

Irgendwann habe ich dann nach langem Umhergooglen herausgefunden dass der Ruby-Interpreter an sich doof ist und von sich aus nichts von Rubygems und den installierten Gems weiß. Erst wenn man ihn mittels

ruby -rubygems

aufruft ist er im Bilde und spuckt beim Einbinden der gewünschten Gems nicht irgendwelche Fehlermeldungen. Noch einfacher lässt sich das Ganze bewerkstelligen indem man in der aktiven Shell vor dem Ausführen des Skripts den Befehl

export RUBYOPT=rubygems

ausführt womit der Ruby-Interpreter bei allen weiteren Aufrufen wie bereits oben beschrieben gestartet wird. Den Befehl packt man dann noch in eine ausführbare Datei unter “/etc/profiles.d” (bei mir “rubygems.sh”) von wo sie dann bei jedem Öffnen einer neuen Shell über “/etc/profile” ausgeführt wird.

Womit man dann auch endlich keine Probleme mehr mit Ruby und seinen Gems hat … ;-)

admin

Archlinux, Gentoo

---

Kommentare

Kommentarfunktion für diesen Artikel geschlossen.

---