Für meine Arbeit habe ich ein paar Ideen für Web-Anwendungen, aber irgendwie will ich das nicht mit Perl oder PHP schreiben. Also habe ich mir gestern das Buch „Learning Rails3“ besorgt und arbeite das jetzt durch. Rainer on rails sozusagen. Allerdings gibt es auf meinem Debian Squeeze ein paar Fallstricke beim Ausprobieren der Einstiegsdroge.
Es fängt damit an, dass ich ruby1.9.1 installiere und der Aufruf für „gem“ dann eben „gem1.9.1“ lautet. Â Zusätzlich zu ruby1.9.1 sollte man auch die vorgeschlagenen Pakete „ri1.9.1 ruby1.9.1-dev ruby1.9.1-examples“ installieren, sonst stürzt der im Buch beschriebene Installationsvorgang ab. Rails installiere ich dann so:
1 |
# <strong>gem1.9.1 install rails</strong> |
Man beachte den „#“ der darauf hinweist, dass das ganze als „root“ passiert. Im Buch sieht man hier den User-Prompt „$“, aber da bekomme ich nur Fehlermeldungen dass ich als User keine Schreibrechte in /var/lib habe.
Wenn Rails dann installiert ist kann man die ersten Schritte wagen, wenn da nicht noch ein kleines Problem wäre. Beim Versuch den Webserver von Rails zu starten um mal das erste Beispiel auszuprobieren fliegt einem dieser gleich mit folgender Fehlermeldung um die Ohren.
1 2 |
$ <strong>rails server</strong> /var/lib/gems/1.9.1/gems/execjs-1.4.0/lib/execjs/runtimes.rb:51:in `autodetect': Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable) |
Zum Glück gibt es Google und da findet sich schnell eine Lösung für das Problem. Also trage ich die folgenden Zeilen mal in mein Gemfile (das findet sich in dem Anwendungsverzeichnis ganz oben) ein und rufe „bundle install“ auf.
1 2 |
gem 'therubyracer' gem 'execjs' |
Leider klappt das auch nicht auf Anhieb.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
$ <strong>bundle install</strong> . . Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. /usr/bin/ruby1.9.1 extconf.rb checking for main() in -lpthread... yes checking for v8.h... no . . The Ruby Racer requires libv8 ~> 3.11.8 to be present on your system in order to compile and link, but it could not be found. In order to resolve this, you will either need to manually install an appropriate libv8 and make sure that this build process can find it. If you install it into the standard system path, then it should just be picked up automatically. Otherwise, you'll have to pass some extra flags to the build process as a hint. If you don't want to bother with all that, there is a rubygem that will do all this for you. You can add following line to your Gemfile: gem 'libv8', '~> 3.11.8' We hope that helps, and we apologize, but now we have to push the eject button on this install. thanks, The Mgmt. |
Zum Glück gibts da also schon die Fehlerbehebung. Ich wechsele also wieder in den Systemverwalter-Modus und gebe folgendes ein:
1 |
# <strong>gem1.9.1 install libv8</strong> |
Damit sollte das Thema hoffentlich erledigt sein. Hier „nervt“ Ruby on Rails ein wenig, denn diese Installationsvorgänge dauern schon mal ein paar Minuten in denen man natürlich zappelt weil man ja gerne was ausprobieren will. Damit funktioniert der „bundle install“ dann auch, selbst wenn ich zum gegenwärtigen Zeitpunkt gar nicht weiß, was der eigentlich wirklich tut. Aber es ist eben wie immer, manche Sachen sind in einem solchen Buch eine „Vorwärtsreferenz“ und man muss es erst mal abhaken und erfährt später, was das tut.
Nun läuft auch der Rails Webserver problemlos und man kann über http://localhost:3000 die Seite aufrufen.
Bis jetzt habe ich die ersten vier Kapitel des Buches durchgeackert und die Beispiele liefen so wie erwartet, allerdings haben ein paar Tippfelhler zu den seltsamsten Seiteneffekten geführt. Ist ja kein Fehler, denn aus Fehlern wird man klug.
[ratings]