(X)Ruby auf dem Mac

Wenn man als Ruby-Entwickler auf einem Mac arbeitet, dann ist man mit Sicherheit schon mal über Probleme bei der Ruby-Installation oder beim Einspielen vom Gems gestolpert. Im Netz finden sich hierfür diverse Beispiele von frustrierten Äpflern:

MacPorts benutzen

Viele Leute werwenden MacPorts für die Installation unterschiedlicher Ruby-Versionen, allerdings gibt es auch viele Probleme mit diesem Ansatz. Hat man denn endlich das gewünschte Ruby auf dem Rechner, dann tauchen wahrscheinlich als nächstes Probleme mit Textmate oder anderer Software auf, die auf der Standardinstallation des OS X Ruby basieren.

(X)Ruby Versionen

Hat man diese Hürde genommen, dann tauchen die nächsten Probleme auf, wenn man unterschiedliche Versionen von Ruby, bzw. unterschiedliche Ruby-Laufzeitumgebungen wie JRuby, MacRuby oder Rubinius verwenden will.

Derzeit verwende ich:

  • Ruby 1.8.6 für Heroku
  • Ruby 1.8.7 für die tägliche Arbeit
  • Ruby 1.9.1 für eine schnelle Ruby-Laufzeit
  • MacRuby um damit ein wenig rumzuspielen
  • JRuby für Buildr

Es gibt einen einfachen Ansatz um diesem Chaos zu entgehen. MacRuby und JRuby bieten einfach unterschiedliche ausführbare Dateien wie ruby18, ruby19 or jgem an. Dies ist allerdings sehr verwirrend und es passiert ständig, dass man Gems für die falsche Ruby-Umgebung installiert, oder dass irgendwelche Skripte nach dem falschen Ruby ausschau halten.

Weil dieser Ansatz nicht sehr gut funktionierte, habe ich angefangen die ausführbaren Dateien fest in der .profile zu verdrahten. Dies hat allerdings den Nachteil, dass man ständig an der Datei rumspielen und danach die Terminal-Fenster wechseln muss. Aus diesem Grund habe ich kleine Skripte geschrieben, die mir den Pfad richtig setzen. Dies funktionierte zwar, ist aber zu umständlich, da man alles selber konfigurieren muss.

Viele Ruby-Versionen sind nicht stabil. Ruby 1.9 zum Beispiel ist noch in der Entwicklung, JRuby hat laufende Kompatibilitäts- und Geschwindigkeits-Updates und MacRuby ist eher noch im Alpha-Stadium. Soweit es mich betrifft, will ich immer die neueste Version von diesen Distributionen haben. Mit MacPorts bekommt man allerdings meistens nur irgendeine Version. Dies hat zur Folge, dass man sich seine Ruby-Versionen selbst kompilieren muss. Dies ist allerdings sehr Zeitraubend und Nerfenaufreibend …

RVM - Ruby Version Manager

Vor einigen Wochen bin ich dann über RVM gestolpert, welches man einfach als Gem ins vorinstallierte Ruby einbinden kann. RVM hat einige nette Features und macht genau was man will. Es hat einige einfache Befehle, mit denen man unterschiedliche Ruby-Distributionen verwalten kann und es hilft einem bei der Organisation der Gems.

Derzeit benutze ich lediglich das standard Ruby und die Developer Tools von OS X Snow Leopard mit RVM ohne MacPorts:

# welches Ruby laeuft?
ruby -v
=> ruby 1.8.7 (2008-08-11 patchlevel 72) [universal-darwin10.0]

# OS X Rubygems aktualisieren
sudo gem update --system

# Gem-Version pruefen
gem -v
=> 1.3.6

# RVM als Gem installieren
sudo gem install rvm

# RVM installieren
rvm-install
# den Installationsanweisugen folgen (RVM zum Pfad hinzufügen)

# ein neues Terminal-Fenster öffnen und die RVM-Version prüfen
rvm --version
=> rvm 0.1.23 by Wayne E. Seguin (wayneeseguin@gmail.com) [http://rvm.beginrescueend.com/]

# die Hilfe anschauen
rvm --help

# irgendein Ruby installieren
rvm install jruby

# nachschauen was installiert ist
rvm list

# einige weitere Informationen anschauen
rvm info

# ein Ruby auswählen
rvm use jruby

# ein Gem fuer die ausgewählre Ruby version installieren
gem install buildr

# ein Gem fuer alle RVM-Rubies installieren
rvm gem install -v=0.6.9 savon

# das vorinstallierte Ruby verwenden
rvm system

Dieser Artikel wurde ins Deutsche übersetzt, das Original findet sich hier.

Mehr? Aktuelle Artikel oder alle Artikel im Archiv.