Ruby on Rails: Installation
Die Installation von Rails ist einfach aber der empfohlene Weg ist abhängig von Betriebssystem, auf dem die Installation stattfinden soll und manchmal ändert sich auch etwas von Version zu Version. Beispielsweise ist ab Rails 2.0 SQLite die Standarddatenbank und nicht mehr MySQL. Es empfiehlt sich deshalb immer zuerst einen Blick auf die offizielle Rails-Seite http://www.rubyonrails.org (englisch). Informationen für den Einstieg stehen unter Get started.
Prinzipiell lauft die Installation so ab:
- Ruby installieren
- Ruby gems installieren
- Rails als gem installieren
Unter Mac OS/X 10.5 sind Ruby und Rails in den Development Tools enthalten. Für ein Upgrade auf die aktuelle Version gibt man mit den entsprechenden Administrationsrechten bzw. mit sudo + Passwort in der Konsole ein:
gem update rails
Fertig.
Als Entwicklungsumgebung unter OS/X hat sich die Arbeit mit der Konsole und TextMate als Editor etabliert. Wer eine echte IDE will, Aptana (s.u.) läuft auch unter OS/X.
Unter Windows gibt es mit "Instant Rails" ein vorgepacktes Komplettpaket. Als Entwicklungsumgebung eignet sich Aptana, eine plattformrübergreifende IDE, die auf Eclipse basiert.
Rails Update
BearbeitenDas Update von Rails auf die aktuelle Version ist einfach. Wir müssen nur in der Konsole
gem update rails
ausführen, ggf. mit sudo. Alternativ können wir auch eine bestimmte Version installieren (hier 2.1.1)
gem install rails --version 2.1.1
oder mit
gem update
gleich alle gems updaten.
Um eine bestehende Applikation auf die neue Rails Version umzustellen müssen wir zusätzlich in config/environment.rb die RAILS_GEM_VERSION umstellen:
# config/environment.rb
# Specifies gem version of Rails to use when vendor/rails is not present
RAILS_GEM_VERSION = '2.1.1' unless defined? RAILS_GEM_VERSION
TODO: Muss man zusätzlich in RAILS_ROOT
rake rails:update
ausführen? Und was genau bewirkt das?
Ich habe das jedenfalls beim Update von 2.1.0 auf 2.1.1 nicht gemacht und hatte bisher kein Problem.
Dies bewirkt, dass das Projekt auf einer neuen Version läuft. Beim Update auf die 2.3.2 werden dazu die config/boot.rb und die JavaScripte (Prototype usw. auf den neusten Stand gebracht und die Datei application.rb den Namenskonventionen angepasst also umbenannt in application_controller.rb
Update auf Rails 2.2 -- Exkurs, ovhaag 12:38, 25. Nov. 2008 (CET)
BearbeitenEs geht um
- das Update auf Rails 2.2
- unter Mac OSX (10.5 - Leopard)
Beim Update von Rails 2.1 auf Rails 2.2 hatte ich Schwierigkeiten, aber netterweise hat Ryan Bates in http://railscasts.com/episodes/137-memoization erwähnt, wie er das Problem gelöst hat. Und bei mir hat seine Lösung funktioniert.
Zunächst das Problem: Für das update auf rails 2.2 mit "gem update rais" benötigt man Rubygems Version 1.3.1. Aber das update von Rubygems mit "gem update --system" scheitert. Jedenfalls bei Ryan und bei mir.
Macintosh:~ ovhaag$ sudo gem update --system
Password:
Updating RubyGems
Updating rubygems-update
Successfully installed rubygems-update-1.3.1
ERROR: While executing gem ... (NameError)
undefined local variable or method `remote_gemspecs' for #<Gem::Commands::UpdateCommand:0x1258874>
Macintosh:~ ovhaag$
Und so sieht die Lösung aus:
- gem install rubygems-update
- update_rubygems
unter OSX natürlich mit "sudo"
Macintosh:~ ovhaag$ sudo gem install rubygems-update
Successfully installed rubygems-update-1.3.1
1 gem installed
Macintosh:~ ovhaag$ gem -v
1.2.0
Macintosh:~ ovhaag$ sudo update_rubygems
Password:
Installing RubyGems 1.3.1
mkdir -p /usr/local/lib/ruby/site_ruby/1.8
mkdir -p /usr/local/bin
..
Macintosh:~ ovhaag$ gem -v
1.3.1
Macintosh:~ ovhaag$
Danach gehts ganz normal weiter:
Macintosh:~ ovhaag$ sudo gem update rails
Password:
Updating installed gems
Updating rails
Successfully installed rake-0.8.3
Successfully installed activesupport-2.2.2
Successfully installed activerecord-2.2.2
Successfully installed actionpack-2.2.2
Successfully installed actionmailer-2.2.2
Successfully installed activeresource-2.2.2
Successfully installed rails-2.2.2
Gems updated: rake, activesupport, activerecord, actionpack, actionmailer, activeresource, rails
Macintosh:~ ovhaag$ rails -v
Rails 2.2.2
Macintosh:~ ovhaag$
Und daran denken, in den Rails Anwendungen in environment.rb die RAILS_GEM_VERSION auf 2.2.2 zu setzen.
# environment.rb
# Specifies gem version of Rails to use when vendor/rails is not present
RAILS_GEM_VERSION = '2.2.2' unless defined? RAILS_GEM_VERSION
Wie gesagt, bei mir hats so geklappt.