Nach dem Update auf Yosemite funktionieren die bisher installierten Rubies via RVM nicht mehr, und man muss diese neu installieren. Schlimmer noch, das dies aber nicht so ohne weiteres geht.

Legen wir los.

Aktuelles Xcode

Nach der Installation sollte man das aktuelle Xcode 6.1 installieren. Das ist aktuell noch nicht via MAS (Mac App Store) verfügbar, liegt aber im Apple Developer Center zur Verfügung.

Angeblich reichen mittlerweile auch die Command Line Utils, das habe ich nicht ausprobiert. (Xcode bietet ja auch den iOS Simulator, daher ganz praktisch…)

Gegebenenfalls muss man den MAS nochmals aufsuchen und die Updates prüfen. Bei mir erschienen da Folge-Updates für Xcode; die hießen zwar Command Line Utils, waren es aber scheinbar nicht?!

Command Line Utils

In dem Terminal kann man mit xcode-select –install dafür sorgen, dass die Verfügbarkeit der Command Line Utils gewährleistet ist. Falls nicht, dann den kommenden Dialog bejahen und warten.

MacPorts

Falls die MacPorts vor dem Update installiert waren, dann muss man eine Migration durchführen (einfach port ausführen, dann erhält man den Hinweis). Falls man nicht unbedingt die alten Ports braucht (man installiert sich die notwendigen dann eh neu), dann kann man auch einfach alle weg schmeißen: (a) Einfach die neuen MacPorts via macports.org runterladen und neu installieren, dann (b) alle deinstallieren mit sudo port -f uninstall installed und anschließend (c) alles Informationen löschen sudo port clean all ausführen. Die letzten beiden Schritte dauern ein paar Minuten.

HomeBrew

Falls HomeBrew installiert war, dann hier schauen, aber das sollte man sich überlegen. Ich würde da im Zweifel auch eher einen Kahlschlag machen. Man hat da eh meistens in der Vergangenheit Dinge installiert, die man gar nicht mehr braucht.

RVM

Wir brauchen auf jeden Fall die neuste Version: rvm get stable

Bei mir hat RVM bei einem Upgrade die Autolibs (also den zu verwendenen Default Package Manager) von MacPorts zu HomeBrew gewechselt, daher muss man ggf. rvm autolibs macports ausführen. (Hinweis: Das gilt ab sofort, das heißt bereits offene Shells laufen noch mit der alten Einstellung!)

Da bereits Rubies und Gemsets vorhanden sein werden, sollte man diese alle entfernen (sie linken teilweise auf nicht mehr korrekte Ports/Brews): rvm remove all

Auch löschen wir alle lokalen Informationen: rvm cleanup all

RVM und apple-gcc42

Sowohl die Variante über MacPorts als auch HomeBrew stolpern aktuell bei der Installation von älteren Rubyversionen über den Compiler apple-gcc42. Beide wollen diesen installieren, aber das funktioniert nicht (mehr?) unter OS X 10.10 / Darwin 14.

Allerdings braucht das Kompilieren von Ruby nicht zwangsläufig GCC, sondern läuft auch mit clang: rvm install 1.9.3 –with-gcc=clang läuft wunderbar – sowohl unter MacPorts als auch HomeBrew. Beim aktuellen Ruby 2.1.3 ist das nicht mehr notwendig.

RVM Autoinstall

Unter Berücksichtigung von Projekten mit alten Rubies (siehe Schritt 4.1), funktioniert jetzt die automatische Installation von Ruby, Gemset und deren Path-Aktivierung auch für Gemfile. Die ~/.rvmrc benötigt dafür ja nur:

rvm_install_on_use_flag=1
rvm_autoinstall_bundler_flag=1
rvm_gemset_create_on_use_flag=1