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

Bearbeiten

Das 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)

Bearbeiten

Es 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:

  1. gem install rubygems-update
  2. 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.