Auch wenn es über die Installation von Ruby on Rails schon viele Posts gibt, habe ich mich entschlossen noch einen zu schreiben. Meistens fehlen mir bei diesen Anleitungen kleine Details und ich denke, dass es besonders für Mac OS X Neulinge, bzw. Menschen, die sich auf der Kommandozeile nicht so auskennen, etwas schwer nach zu voll ziehen ist, was sie da überhaupt gerade machen.
Zum anderen, soll dieses Blog auch ein wenig unsere Entwicklung, die wir mit Ruby on Rails durch mache, wieder spiegeln und da ist es doch ganz gut, wenn man ganz von Vorne beginnt.
Jetzt gibt es erst mal eine Kurzanleitung mit allen nötigen Befehlen, für die Leute, die Ruby on Rails einfach nur ganz schnell installieren wollen und keinen Text mögen. Falls es dann zu Problemen kommt, müsst ihr halt doch noch mal unten schauen ;-).
Zusammenfassung
Source Dateien von der MacPorts Seite laden
$ tar -xvzf MacPorts-1.5.0.tar.gz
$ cd MacPorts-1.5.0
$ ./configure --prefix=/usr/local/macports
$ make
$ sudo make install
$ sudo ln -s /usr/local/macports/bin/port /usr/bin/port
$ cat >>~/.profile
PATH=/usr/local/macports/bin:$PATH ; export PATH
ctrl+D drücken
$ PATH=/usr/local/macports/bin:$PATH ; export PATH
$ sudo port selfupdate
$ sudo port install rb-rubygems
$ gem update
$ sudo gem install rails --include-dependencies
$ rails -v
Update Michael schreibt in den Kommentaren, dass bei Mac Ports 1.6.0 vor $ sudo gem install rails –include-dependencies noch ein $ sudo port install rb-rails kommen muss.
MacPorts
MacPorts (ehemals DarvinPorts) ist ein Packet Management System, wie es eigentlich fast jedes Unix System hat, das es einem erleichtert Programme zu installieren und sie auf dem aktuellen Stand zu halten. Das System berücksichtigt und installiert auch alle Abhängichkeiten, d.h. alle Programme und Bibliotheken, die für das zu installierende Programm benötigt werden. Um bereits Installierte Versionen von Ruby oder anderen Sachen, muss man sich keine Sorgen machen, da die MacPorts Installationen abgeschottet davon liegen und sich nicht beeinflussen.
Um MacPorts und später Ruby on Rails zu installieren, muss man
- als Administrator eingelogged sein, um das SuperUser Command sudo ausführen zu können (wird später noch ganz oft gebraucht)
- Xcode Tools installiert haben (sind auf der OS X CD oder bei Apple, auf jeden Fall mal checken, ob das auf der CD die Aktuelle Version ist. Geht ganz einfach in dem man in die About Xcode Tools.pdf rein schaut, da steht die Version drin. Gerade is das 2.4.1)
MacPorts gibt es mitlerweile auch mit einem Installer aber ich möchte es hier einmal selber kompilieren um es gesammelt unter /usr/local/macports zu haben. So kann man es jeder Zeit ohne Probleme wieder löschen, in dem man einfach den Ordner löscht.
Also als erstes müssen wir uns die Source Dateien auf den Desktop runter laden (einfach die aktuellste Version wählen, zum jetzigen Zeitpunkt ist das 1.5.0), ich nutze die MacPorts-1.5.0.tar.gz. Dann entpacken wir das ganze. Dazu gehen wir ins Terminal (zu finden unter Programme -> Dienstprogramme -> Terminal, das ist die Kommandozeile auf der wir uns jetzt die ganze Zeit bewegen werden) und tippen ein paar Befehl ein. Für all, die noch nie mit dem Terminal gearbeitet haben hier noch ein paar Hinweise:
- das $ signalisiert nur, dass es sich um die Kommandozeile handelt, der Befehl fängt erst danach an
- mit dem Tabulator kann man Dateien oder Pfade vervollständigen lassen, bzw. sich die Möglichkeiten anzeigen lassen (Beispiel $ cd Des tippen und dann den Tabulator drücken führt zu $ cd Desktop)
Also los:
$ cd Desktop
$ tar -xvzf MacPorts-1.5.0.tar.gz
Es wird die Liste mit den entpackten Files angezeigt. Wir wechseln nun in das neue Verzeichnis und führen das ./configure Script mit dem Prefix, in das wir MacPorts installieren wollen aus. Dadurch wird die Installation vorbereitet (man sieht einen Haufen Tests die das Script ausführt. Wenn ein “WARNING: X11 not available.” auftaucht, ist das nicht weiter schlimm, da wir keine X11 Pakete installieren wollen). Im Anschluss kompilieren wir MacPorts mit dem Befehl “make” und installieren es mit “sudo make install”, hier werden wir nach dem Administrator Kennwort gefragt, einfach eintippen und den Mac arbeiten lassen.
$ cd MacPorts-1.5.0
$ ./configure --prefix=/usr/local/macports
$ make
$ sudo make install
Das Gröbste wäre damit erledigt. Wir legen noch einen Symlink an, um uns die weitere Arbeit zu erleichtern und nicht immer den ganzen Pfad eingeben zu müssen.
Damit die alte Ruby Version nicht mehr benutzt wird und irgendwann Probleme machen könnte, ändern wir noch $PATH, indem wir eine .profile Datei erstellen, in die wir den MacPorts installations Pfad aufnehmen. Damit das ganze auch gleich funktioniert (normal müssten wir uns neu einloggen) ändern wir $PATH gleich noch für diese Session.
Danach machen wir noch ein selfupdate für MacPorts, hier holt sich MacPorts alles was es braucht und macht ggf. noch ein Update (kann also ein bisschen dauern)
$ sudo ln -s /usr/local/macports/bin/port /usr/bin/port
$ cat >>~/.profile
PATH=/usr/local/macports/bin:$PATH ; export PATH
ctrl+D drücken
$ PATH=/usr/local/macports/bin:$PATH ; export PATH
$ sudo port selfupdate
Ein einfaches
$ sudo port install rb-rubygems
installiert uns jetzt die RubyGems mit denen wir nun mit der eigentlichen Ruby on Rails Installation anfangen können. Die Installation von RubyGems kann eine ganze Weile dauern, da ja auch alle Abhängigkeiten installiert werden müssen, also wenn du ein Raucher bist: Zurück lehnen, Mukke laufen lassen und die Kippe anmachen…
Ruby on Rails
Als erstes sollten wir nun ein Update der gems machen und dann Rails mit all seinen Abhängichkeiten installieren. Das kann je nach Mac und Server Status auch wieder ewig dauern… noch ne Kippe? (Machmal spackt der http://gems.rubyforge.org Server rum und sagt, dass er die Pakete nicht lesen kann. Bei mir hat ein gem query –remote geholfen, dass alle verfügbaren Pakete anzeigt. Danach ging der normale install Befehl… kann auch nur Zufall gewesen sein ;-))
$ gem update
$ sudo gem install rails --include-dependencies
Update:
In den Kommentaren hat Phil darauf hingewiesen dass es hier zu einem Problem beim $ gem update kommen kann. Seine Lösung sieht ein
$ sudo port -ufn upgrade rb-rubygems
vor dem $ gem update vor. (Quelle: http://lists.macosforge.org/pipermail/macports-dev/2007-June.txt)
Danke Phil!
So das war es, Rails ist nun installiert! Herzlichen Glückwunsch erst mal =)
Hier noch ein paar checks
$ rails -v
$ ruby -v
$ which rails
$ which ruby
sollte ungefähr das hier ausgeben (je nachdem welche Version du hast):
Rails 1.2.3
ruby 1.8.6 (2007-03-13 patchlevel 0) [i686-darwin8.10.3]
/usr/local/macports/bin/rails
/usr/local/macports/bin/ruby
Wichtig ist hier, dass die beiden Pfade das MacPorts Verzeichnis beinhalten.
Jetzt gibt es noch nen paar Gems, die man installieren sollte aber darauf gehe ich in weiteren Posts genauer ein.
Ähnliche Posts:» HowTo: ImageMagick + RMagick via Macports für Tiger
» HowTo: MySQL 5, Mongrel, Capistrano + Subversion
» MCV Ruby on Rails – was gehört wohin?
» Plugin: acts_as_list_in_tree und descendants in acts_as_tree

Ich bin Manuel Wiedenmann, 25 Jahre alt und wohne zur Zeit in Lüneburg. Ich bin Student der Angewandten Kulturwissenschaften an der Leuphana Universität Lüneburg. Weiterhin bin ich freier Webentwickler und arbeite dabei mit Ruby on Rails und PHP.
Hi, wollte mich nur bedanken für die gute Anleitung.
Der Umstieg auf Leopard steht aktuell noch nicht an, die bisher von mir eingesetzte Version von Locomotive ist leider ziemlich outdated (wird Locomotive überhaupt noch weiter entwickelt?) Insofern stellt MacPorts eine tolle Möglichkeit für mich dar.
Grüße,
Andreas
Freut mich, dass es dir geholfen hat.
Hi Manuel!
Vielen Dank für deine kurze und gute Anleitung. Hat mir sehr geholfen und jetzt funktioniert alles.
Ein Frohes Fest wünscht
Florian
Yeah! so muss es sein. Wenn es noch Fragen gibt… einfach in die Comments schreiben.
Ebenfalls ein frohes Fest!
Hey,
danke für die Anleitung, hat mich auch dazu gebracht von Locmotive zu “switchen”.
Ich habe nur nach dem “$gem upate” folgende Fehlermeldung bekommen:
/usr/local/macports/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require': no such file to load -- sources (LoadError)
from /usr/local/macports/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:27:in `require'
from /usr/local/macports/lib/ruby/vendor_ruby/1.8/rubygems/source_info_cache.rb:6
from /usr/local/macports/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require'
from /usr/local/macports/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:27:in `require'
from /usr/local/macports/lib/ruby/vendor_ruby/1.8/rubygems/remote_installer.rb:12
from /usr/local/macports/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require'
from /usr/local/macports/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:27:in `require'
from /usr/local/macports/lib/ruby/vendor_ruby/1.8/rubygems.rb:112:in `manage_gems'
from /usr/local/macports/bin/gem:10
Das ganze konnte ich aber so lösen: $sudo port -ufn upgrade rb-rubygems (Quelle: http://lists.macosforge.org/pipermail/macports-dev/2007-June.txt)
Also macht weiter so.
Guten Start in 2008
P.S. @andreas: Locomotive wird nicht mehr weiter entwickelt
vielen Dank für den Hinweis!
hi manuel,
stelle meinen server auch um und komme dank deiner prägnanten anleitung erfolgreich bis nach “sudo port install rb-rubygems”
danach allerdings bei “gem update”
krieg ich folgenden fehler:
/usr/local/macports/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require': no such file to load -- sources (LoadError)
from /usr/local/macports/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:27:in `require'
from /usr/local/macports/lib/ruby/vendor_ruby/1.8/rubygems/source_info_cache.rb:6
from /usr/local/macports/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require'
from /usr/local/macports/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:27:in `require'
from /usr/local/macports/lib/ruby/vendor_ruby/1.8/rubygems/remote_installer.rb:12
from /usr/local/macports/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require'
from /usr/local/macports/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:27:in `require'
from /usr/local/macports/lib/ruby/vendor_ruby/1.8/rubygems.rb:112:in `manage_gems'
ebenso bei “sudo gem install rails –include-dependencies” und “gem query”, etc.
was ist da falsch?
which ruby
/usr/local/macports/bin/ruby
ruby -v
ruby 1.8.6 (2007-09-23 patchlevel 110) [i686-darwin8.11.1]
wenn ich macports mit dem osx installer installiere, wird rubygems in /opt/local abgelegt.
ein “sudo gem install rails –include-dependencies” aktualisiert aber das vorhandene /usr/bin/rails und das vorhandene (beschädigte mac os x) ruby
welche möglichkeit habe ich, das ziel für die gems (für “sudo gem upd”) auf ein macport verzeichnis zu setzen.
vielen dank für hints!
beste grüße
gerhard
Hallo Gerhard,
Phil hat gerade in den Comments eine Lösung beschrieben.
Probier mal:
$sudo port -ufn upgrade rb-rubygems
@Phil muss man das vor dem
$ gem update
machen oder anstelle des updates?
Hey ihr zwei,
man muss es auf jeden Fall vor dem
$gem update
machen. Ich habe das $gem update danach dann nocheinmal gemacht, aber mehr um zu testen ob es funktioniert.
Viel Spass,
Gruß Phil
hallo manuel & phil!
so hats nun geklappt, vielen dank!!
jetzt läuft rails 2.0.2.
die gesamte macports-rubygem-rails-mongrel-imagemagick-capistrano installation hat stolze 624MB
zum doppel-post: ich hatte diese seite den ganzen tag offen und da es vorerst nicht geklappt hat inzwischen was anderes gemacht. den post hab ich dann in der nacht reingeschrieben, ohne die seite vorher neu zu laden – und, so ein zufall – phil hat in der zwischenzeit zum selben topic gepostet, mit lösung!
take care!
gerhard
ich fand es lustig, dass ihr beiden die selben probleme hattet und es gleich ne lösung gab.
wenn ihr noch irgendwelche tipps habt oder sachen, die man unbedingt machen sollte schreibt in die kommentare oder schreibt mir ne mail… wir wollen ja alle was lernen!
Gute Anleitung, bei mir hat es allerdings ohne:
$ sudo port install rb-rails
nicht funktioniert (Mac Ports 1.6.0). Dieses Paket installiert bei mir erst Rails.
Das Kommando:
$ sudo gem install rails –include-dependencies
führt bei mir sonst zu einem Fehler.
@Michael, danke für den Hinweis hab es mal in den Post eingebaut.
Hey grüß Dich. Erst einmal danke für die schöne Anleitung.
Ich wollte gerade die macports installieren, habe mich an die Anleitung gehalten und bekomme nach dem Eingeben von $make die Meldung
make: *** No targets specified and no makefile found. Stop.
Hast Du eine Idee, woran das liegen kann? Ich habe schon bei google recherchiert, wo oft stand, dass die DevTools von apple wohl nicht installiert seien. Dies ist aber nicht der Fall, die Tools sind auf jeden Fall installiert.
Danke schon einmal.
bist du im MacPorts Verzeichnis?
also hast du cd MacPorts-1.5.0 gemacht?
lief der ./configure richtig durch?
hast du make ohne $ oder mit ausgeführt? muss ohne sein.
ansonsten kannst du noch
which make
ins terminal eingeben und dann sollte er dir so was ausgeben:
/usr/bin/make
wenn er nix ausgibt, gibt es make nicht aber glaub ich nicht…
Bin im Verzeichnis
der ./configure lief durch (bis auf die x11 Meldung)
klar ohne $
which make führt zu usr/bin/make (passt also)
-bash-3.2$ which make
/usr/bin/make
-bash-3.2$ make
make: *** No targets specified and no makefile found. Stop.
-bash-3.2$
Ok, habs in letzter Instanz über den Installer gemacht. Dann liefs.