Neu: Das englische Ruby on Rails 4.0 Buch.

1.6. Ubuntu 12.04 LTS - Installation von Ruby on Rails 3.2 mit RVM

Es gibt zwei Hauptgründe, ein Ruby-on-Rails-System mit RVM (Ruby Version Manager) zu installieren:
  • Man hat schlicht und ergreifend keine Root-Rechte auf dem System. Dann geht es nicht anders.
  • Man möchte mehrere und sauber voneinander abgetrennte Rails-Systeme und damit vielleicht Ruby-Versionen betreiben. Das lässt sich mit RVM auf dem Linux-System sehr gut realisieren. So können Sie auf einem Rechner ein Ruby 1.8.7 mit einem Rails 2.3.8 und parallel ein Ruby 1.9.3 mit einem Rails 3.2 betreiben.

Anmerkung

Detaillierte Infos zu RVM finden Sie auf der RVM-Homepage unter https://rvm.io/.
Diese Beschreibung setzt ein frisch installiertes Ubuntu 12.04 LTS voraus. Ein ISO-Image für die Installation finden Sie auf http://www.ubuntu.com/.

Warnung

Wenn Sie die gedruckte Buch-Version dieses Kapitels lesen, dann schauen Sie bitte sicherheitshalber noch einmal auf die Online-Version unter http://ruby-auf-schienen.de. Jedes Update des Betriebssystems bzw. RVMs zieht fast immer auch eine Anpassung der Installationsanleitung nach sich.

Vorbereitungen

Wenn Sie auf dem Zielsystem Root- bzw. sudo-Rechte besitzen, dann können Sie mit folgenden Befehlen sichergehen, dass alle notwendigen Programme für eine erfolgreiche Installation von RVM bereitstehen. Falls Sie keine Root-Rechte haben, müssen Sie entweder hoffen, dass Ihr Admin bereits alles so installiert hat oder ihm die entsprechende Zeile kurz mailen.
Als Erstes ein Update der Paketlisten:
xyz@ubuntu:~$ sudo apt-get update
[sudo] password for xyz: 
Ign http://de.archive.ubuntu.com precise InRelease
Ign http://de.archive.ubuntu.com precise-updates InRelease
Ign http://de.archive.ubuntu.com precise-backports InRelease
Ign http://security.ubuntu.com precise-security InRelease
OK   http://de.archive.ubuntu.com precise Release.gpg

[...]

OK   http://security.ubuntu.com precise-security/restricted Translation-en
OK   http://security.ubuntu.com precise-security/universe Translation-en
Paketlisten werden gelesen... Fertig
xyz@ubuntu:~$ 

Anmerkung

Natürlich können Sie optional auf dem System einen SSH-Server installieren, um dann auf dem System per SSH statt auf der Konsole zu arbeiten:
xyz@ubuntu:~$ sudo apt-get install openssh-server
Und jetzt die Installation der zur Installation von RVM und später Ruby on Rails benötigten Pakete:
xyz@ubuntu:~$ sudo apt-get install curl git-core patch \
   build-essential bison zlib1g-dev libssl-dev libxml2-dev \
   libxml2-dev sqlite3 libsqlite3-dev autotools-dev \
   libxslt1-dev libyaml-0-2 autoconf automake libreadline6-dev \
   libyaml-dev libtool
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut       
Statusinformationen werden eingelesen... Fertig

[...]

g++ (4:4.6.3-1ubuntu5) wird eingerichtet ...
update-alternatives: /usr/bin/g++ wird verwendet, um /usr/bin/c++ (c++) im Auto-Modus bereitzustellen.
build-essential (11.5ubuntu2) wird eingerichtet ...
Trigger für libc-bin werden verarbeitet ...
ldconfig deferred processing now taking place
xyz@ubuntu:~$

Ruby 1.9.3 mit RVM installieren

RVM lässt sich auf verschiedenen Wegen installieren. Ich empfehle das folgende Monsterkommando (bitte exakt kopieren), mit dem das aktuellste RVM installiert wird:
xyz@ubuntu:~$ curl -L https://get.rvm.io | bash -s stable
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   185  100   185    0     0    336      0 --:--:-- --:--:-- --:--:--  1016
100  8545  100  8545    0     0   6895      0  0:00:01  0:00:01 --:--:--  6895
Downloading RVM from wayneeseguin branch stable
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   125  100   125    0     0    192      0 --:--:-- --:--:-- --:--:--   262
100  994k  100  994k    0     0   248k      0  0:00:04  0:00:04 --:--:--  362k

Installing RVM to /home/xyz/.rvm/
    Adding rvm PATH line to /home/xyz/.bashrc /home/xyz/.zshrc.
    Adding rvm loading line to /home/xyz/.bash_login /home/xyz/.zlogin.

# RVM:  Shell scripts enabling management of multiple ruby environments.
# RTFM: https://rvm.io/
# HELP: http://webchat.freenode.net/?channels=rvm (#rvm on irc.freenode.net)
# Cheatsheet: http://cheat.errtheblog.com/s/rvm/
# Screencast: http://screencasts.org/episodes/how-to-use-rvm

# In case of any issues read output of 'rvm requirements' and/or 'rvm notes'

Installation of RVM in /home/xyz/.rvm/ is almost complete:

  * To start using RVM you need to run `source /home/xyz/.rvm/scripts/rvm`
    in all your open shell windows, in rare cases you need to reopen all shell windows.

# xyz,
#
#   Thank you for using RVM!
#   I sincerely hope that RVM helps to make your life easier and more enjoyable!!!
#
# ~Wayne


rvm 1.12.5 (stable) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]

xyz@ubuntu:~$
RVM ist jetzt fertig installiert. Sie müssen nun entweder Ihr Terminal und damit Ihre Shell schließen und danach neu starten oder das rvm-Skript wie folgt einlesen:
xyz@ubuntu:~$ source ~/.rvm/scripts/rvm
xyz@ubuntu:~$ 
Um zu testen, ob rvm richtig installiert ist, rufen wir es einmal mit -v auf:
xyz@ubuntu:~$ rvm -v

rvm 1.12.5 (stable) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]

xyz@ubuntu:~$
Sollte hierbei als Antwort der Bash command not found ausgegeben werden, müssen Sie die obigen Schritte noch einmal überprüfen.
Der folgende Befehl zeigt Ihnen die Rubies (Ruby-Interpreter) an, die RVM kennt [9]:
xyz@ubuntu:~$ rvm list known
# MRI Rubies
[ruby-]1.8.6[-p420]
[ruby-]1.8.7[-p358]
[ruby-]1.8.7-head
[ruby-]1.9.1[-p431]
[ruby-]1.9.2-p180
[ruby-]1.9.2-p290
[ruby-]1.9.2-p318
[ruby-]1.9.2[-p320]
[ruby-]1.9.2-head
[ruby-]1.9.3-preview1
[ruby-]1.9.3-rc1
[ruby-]1.9.3-p0
[ruby-]1.9.3-p125
[ruby-]1.9.3-[p194]
[ruby-]1.9.3-head
ruby-head

[...]

xyz@ubuntu:~$

Anmerkung

Es gibt für Ruby verschiedene Interpreter. Relevant ist hier für uns der ganz normale MRI (Matz's Ruby Interpreter) [10], dessen Kern seit Ruby 1.9 die Ruby-VM namens YARV (Yet Another Ruby VM) [11] bildet.
Jetzt können Sie mit RVM Ruby 1.9.3 installieren:
xyz@ubuntu:~$ rvm install 1.9.3
Fetching yaml-0.1.4.tar.gz to /home/xyz/.rvm/archives
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  460k  100  460k    0     0   148k      0  0:00:03  0:00:03 --:--:--  170k
Extracting yaml-0.1.4.tar.gz to /home/xyz/.rvm/src
Prepare yaml in /home/xyz/.rvm/src/yaml-0.1.4.
Configuring yaml in /home/xyz/.rvm/src/yaml-0.1.4.

[...]

ruby-1.9.3-p194 - adjusting #shebangs for (gem irb erb ri rdoc testrb rake).
ruby-1.9.3-p194 - #importing default gemsets (/home/xyz/.rvm/gemsets/)
Install of ruby-1.9.3-p194 - #complete 
xyz@ubuntu:~$
RVM stellt per Default direkt die gerade installierte Ruby-Version zur Verfügung:
xyz@ubuntu:~$ ruby -v
ruby 1.9.3p194 (2012-04-20 revision 35410) [i686-linux]
xyz@ubuntu:~$

Anmerkung

Sollten Sie vorher bereits eine System-Ruby-Version 1.8.x installiert haben, so können Sie mit dem Befehl rvm system jederzeit wieder auf diese zurückwechseln.

Tipp

Geben Sie einfach mal den Befehl rvm ein, um eine entsprechende Hilfe-Seite mit weiteren Befehlen angezeigt zu bekommen.

Ruby Documentation generieren

Ruby kommt mit einer immer abrufbereiten Dokumentation (siehe „Hilfe per ri“). Wenn Sie diese installieren wollen (was ich Ihnen empfehle), so müssen Sie jetzt noch rvm docs generate starten:
MacBook:~ xyz$ rvm docs generate

Rails installieren

Zuerst überprüfen wir, ob ein Ruby in der Version 1.9.3 aufgerufen wird. Sollte das nicht der Fall sein, lesen Sie sich bitte „Ruby 1.9.3 mit RVM installieren“ durch.
xyz@ubuntu:~$ ruby -v
ruby 1.9.3p194 (2012-04-20 revision 35410) [i686-linux]
xyz@ubuntu:~$
Anschließend stellen wir sicher, dass das gem-Paketmanagement aktuell ist:
xyz@ubuntu:~$ gem update
Updating installed gems
Nothing to update
xyz@ubuntu:~$

Rails 3.2 installieren

Der Rest ist einfach:
xyz@ubuntu:~$ gem install rails --version '~> 3.2.0'
Fetching: i18n-0.6.0.gem (100%)
Fetching: multi_json-1.3.2.gem (100%)

[...]

Installing RDoc documentation for railties-3.2.7...
Installing RDoc documentation for rails-3.2.7...
xyz@ubuntu:~$
Perfekt. Jetzt haben Sie Rails 3.2 installiert.
xyz@ubuntu:~$ rails -v
Rails 3.2.7
xyz@ubuntu:~$

Anmerkung

Falls Sie einmal eine ältere Rails-Version installieren wollen, so können Sie den --version Parameter mit der entsprechenden älteren Versionsnummer anpassen (z. B. --version '-> 3.1.0' für die aktuellste Rails 3.1 Version).

Und jetzt?

Wenn Sie noch nie mit Ruby gearbeitet haben, sollten Sie zuerst die Kapitel 2, Ruby-Grundlagen lesen. Wenn Sie schon Ruby-Meister sind und sich neu mit Rails beschäftigen wollen, dann empfehle ich Ihnen die Lektüre von Kapitel 3, Erste Schritte mit Rails.