Was bedeutet X11? Sie wissen es nicht, egal ...  Interesse ? Info hier: X Window System
Linux-Server-Administratoren, sollten es jedoch wissen!
Das X Window System ist Netzwerkfähig wie wir, multiflexibel und anpassungsfähig!
  • Produkte
  • News
  • Support
  • Service/FAQ
  • Referenzen
  • Links
  • Seite Drucken
  • Impressum
  • FAQ
  • Linux Server HowTo
  • Typo3 Extensions
  • Kleine Helfer
  • SSL Root Cert

Anleitung um Ruby 1.8.7, Ruby on Rails und RubyGems unter Debian zu Installieren

Einleitung

Bei Ruby on Rails handelt es sich um ein in Ruby geschriebenes Web Application Framework. In dieser Anleitung (Howto) erläutern wir die Installation des Ruby on Rails Frameworks auf einem Debian GNU/Linux 5.0 ("Lenny") System. Auch wenn alles im Debian Repository vorhanden ist, werden wir es aus dem Sourcecode selbst kompilieren, also manuell Installieren.

Der Grund: Die im Repository enthaltene Versionen von Ruby ist in vielen Fällen inkompatibel zu der neuesten Version von Ruby on Rails und wir möchten uns eine neue Baustellen schaffen :-).

Zuerst sollten wir die Debian-Pakete ruby und gems vom System entfernen:

 

apt-get remove ruby gems --purge

 

Installation benötigter Software

Zum Kompilieren von Ruby (mit ssl Support) benötigen wir zuerst einmal die Entwicklungsbibiliotheken für ssl Support "libssl-dev".

 

Wir wechseln zum root Account:

myhost:~$ su root

Installiert wird das mit:

myhost:~# apt-get install libssl-dev

1. Installation des Ruby Interpreters

Unter ftp://ftp.ruby-lang.org//pub/ruby/ finden wird unsere benötigte Version: ruby-1.8.7-p249.tar.gz. Die 1.9.xx Versionen sind zwar als "stable" deklariert aber nicht ganz kompatibel zu dem Projekt welches ich einsetzen bzw. Testen und evtl. weiterentwickeln möchte "PowerDNS on Rails" .

Zuerst wechseln wir nach /usr/local/src und erstellen hier ein Verzeichnis "tar" in welchem wir unsere Downloads ablegen.

myhost:~# cd /usr/local/src


myhost:/usr/local/src# mkdir tar
myhost:/usr/local/src# cd tar

Downloaden:

myhost:/usr/local/src/tar# wget wget ftp://ftp.ruby-lang.org//pub/ruby/ruby-1.8.7-p249.tar.gz

In das übergeordnete Verzeichnis wechseln und Aupacken:

myhost:/usr/local/src/tar# cd ..


myhost:/usr/local/src# tar xzfv tar/ruby-1.8.7-p249.tar.gz

Ich ziehe es vor, manuell installierte Software nach /opt/paket-versionnummer zu installieren und dann mit Symlinks in das System zu integrieren, da hiermit die Test und Update Möglichkeiten vereinfacht werden können.

Wir geben dem "configure script" den Parameter --prefix=/opt/ruby-1.8.7-p249 mit. Dadurch wird das Programm in diesem Pfad installiert und wir können die dementsprechenden Symlinks erzeugen. Zuerst einen Symlink ruby zu ruby-1.8.7-p249 und dann /opt/ruby/bin/* nach /usr/local/bin.

Hierdurch ist ein Versionswechsel ganz einfach. Es wird nur der Basislink auf die neue Version gesetzt.

myhost:/usr/local/src# cd ruby-1.8.7-p249


myhost:/usr/local/src/ruby-1.8.7-p249# ./configure --prefix=/opt/ruby-1.8.7-p249
myhost:/usr/local/src/ruby-1.8.7-p249# make -j4
myhost:/usr/local/src/ruby-1.8.7-p249# make test
myhost:/usr/local/src/ruby-1.8.7-p249# make install

Der Parameter -j4 bei make bewirkt das 4 Jobs gleichzeitigt abgearbeitet werden (macht aber nur Sinn wenn auch mehrere CPU`S zur verfügung stehen), das Kompilieren geht dann deutlich schneller.

 

Wir erzeugen den Basislink und die "bin/links"

myhost:/usr/local/src/ruby-1.8.7-p249# cd /opt


myhost:/opt# ln -s ruby-1.8.7-p249 ruby
myhost:/opt# cd /usr/local/bin
myhost:/usr/local/bin# ln -s /opt/ruby/bin/* .

Nun können wir uns die Version anzeigen lassen:

myhost:/usr/local/bin# ruby -v


ruby 1.8.7 (2010-01-10 patchlevel 249) [x86_64-linux]

Jetzt installieren wir noch die Unterstützung von OpenSSL:

myhost:/usr/local/bin# cd /usr/local/src/ruby-1.8.7-p249/ext/openssl


myhost:/usr/local/src/ruby-1.8.7-p249# ruby extconf.rb
myhost:/usr/local/src/ruby-1.8.7-p249# make && make install

 

Der Ruby interpreter ist nun installiert!

Nun benötigen wir den Paketmanager RubyGems.

 

2. Installation von Rubys eigenem Paketmanager RubyGems

Mit RubyGems können weitere Ruby Pakete verwaltet werden.

Wir installieren später das "Web Application Frameworkc Ruby on Rails" selbst mittels RubyGems. Durch den parameter --prefix=/opt/ruby-1.8.7-p249, welchen wir dem ruby "configure Script" mitgeteilt hatten, wird automatisch auch RubyGems in diesen Pfad installiert und alle gem Addons (oder Pakete) unter /opt/ruby-1.8.7-p249/lib/ruby/gems/1.8/gems installiert.

Unter rubyforge.org können wir uns nach einer aktuellen Version umsehen und erst mal nach /usr/local/src/tar downloaden.

myhost:/usr/local/src/ruby-1.8.7-p249# cd ../tar


myhost:/usr/local/src/tar# wget http://rubyforge.org/frs/download.php/69365/rubygems-1.3.6.tgz

Auspacken und installieren:

myhost:/usr/local/src/tar# cd ../


myhost:/usr/local/src# tar xzfv tar/rubygems-1.3.6.tgz
myhost:/usr/local/src# cd rubygems-1.3.6
myhost:/usr/local/src/rubygems-1.3.6# ruby setup.rb
myhost:/usr/local/src/rubygems-1.3.6# cd ..
myhost:/usr/local/src# /opt/ruby/bin/gem -v
1.3.6

Nun verlinken wir noch rubygems nach /usr/local/bin.

myhost:/usr/local/src/# cd /usr/local/bin


myhost:/usr/local/bin# ln -s /opt/ruby/bin/gem .

3. Installation von Ruby on Rails

Nun installieren das Web Application Framework Ruby on Rails mittels RubyGems. Auch hier wird durch die "Compileranweisung" --prefix=/opt/ruby-1.8.7-p249 alles im Prefixpfad installiert:

myhost:# gem install rails

Rubygems installiert noch folgende von Rails benötigte Pakete:

  • rake(0.8.7)
  • activesupport(2.3.5)
  • activerecord(2.3.5)
  • rack(1.0.1)
  • actionpack(2.3.5)
  • actionmailer(2.3.5)
  • activeresource(2.3.5)
  • und letzendlich auch rails(2.3.5)
  • + die Dokumetationspacks (ri und RDoc).

4. Installation der Ruby on Rails mysql Unterstützung

Da wir nativen Mysql-Support benötigen, müssen wir noch gem - mysql installieren. Wir suchen erst mal das benötigte Paket mittels:

myhost:# gem list --remote mysql


*** REMOTE GEMS ***
mysql (2.8.1, 2.7.3)
mysql-inspector (0.0.6)
mysql-xml (0.1.1)
mysql2 (0.1.4)
mysql_backup (0.2.1)
mysql_incremental_query (0.0.2)
mysql_mirror (0.1.3)
mysql_replication_adapter (0.4.0)
mysql_replication_monitor (0.1.6)
mysql_replication_status (0.1.3)
mysql_retry_lost_connection (0.0.1)
mysql_s3_backup (0.0.1)
mysql_schema_bulk_change (0.2.0)
mysql_view_support (0.2.0)
mysql_warmer (0.1.1)
mysqlplus (0.1.1)

Auf grund der Tatsache, daß dieses Paket native erstellt (also kompiliert) wird, benötigen wir hierfür die mysql development Pakete von Debian.

Wenn wir es ohne diese versuchen, wird es zu folgender oder ähnlicher Fehlermeldung kommen:

myhost:# gem install mysql


building native extensions. This could take a while...
ERROR: Error installing mysql:
ERROR: Failed to build gem native extension.

/opt/ruby-1.8.7-p249/bin/ruby extconf.rb
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lm... yes
checking for mysql_query() in -lmysqlclient... no
....

Also erst mal via APT die development Pakete für Mysql installieren.

Zuerst suchen wir, welche Pakete angeboten werden:

myhost:# apt-cache search mysql | grep dev


gambas2-dev - Gambas compilation tools
gambas2-ide - Visual development environment for the Gambas programming language
gambas2 - Complete visual development environment for Gambas
libgnademysql-dev - GNat Ada Database Environment - MySQL programming interface
libgnadeodbc-dev - GNat Ada Database Environment - ODBC programming interface
libgnadepostgresql-dev - GNat Ada Database Environment - PostgreSQL programming interface
libgnadesqlite-dev - GNat Ada Database Environment - SQLite programming interface
libghc6-hsql-mysql-dev - MySQL driver of the HSQL library for GHC6
libghc6-hsql-odbc-dev - UnixODBC driver of the HSQL library for GHC6
libghc6-hsql-postgresql-dev - PostgreSQL driver of the HSQL library for GHC6
libghc6-hsql-sqlite3-dev - SQLite driver of the HSQL library for GHC6
libghc6-hsql-dev - Multi-Database Interface System library for GHC6
libghc6-haskelldb-hsql-mysql-dev - GHC6 library for HaskellDB support for the HSQL MySQL driver
libghc6-hdbc-odbc-dev - unixODBC HDBC (Haskell Database Connectivity) Driver for GHC
libghc6-hdbc-sqlite3-dev - Sqlite v3 HDBC (Haskell Database Connectivity) Driver for GHC
libghc6-hdbc-dev - Haskell Database Connectivity, GHC6 package
libkaya-mysql-dev - MySQL binding for kaya
liblua5.1-sql-mysql-dev - luasql development files for the lua language version 5.1
monodevelop-database - Database plugin for MonoDevelop
libmysql++-dev - MySQL C++ library bindings (development)
libmysql-ocaml-dev - OCaml bindings for MySql
libsimpledb-dev - C++ ODBC database API
sqlrelay-dev - SQL Relay C and C++ APIs
libsqlxx-dev - C++ classes for database access via ODBC
libtntdb-dev - Development headers for tntdb
trac - Enhanced wiki and issue tracking system for software development projects
libmysqlclient15-dev - MySQL database development files

Hier sehen wir libmysql++-dev - MySQL C++ library bindings (development), diese benötigen wir!

 

myhost:# apt-get install libmysql++-dev

Nun können wir das Gem-Paket erstellen lassen:

myhost:# gem install mysqlBuilding native extensions.  This could take a while...


Successfully installed mysql-2.8.1
1 gem installed
...
...
Installing ri documentation for mysql-2.8.1...
...

 

Diverse informationen wie zb: no definition for next_result oder No definition for field_name, sollten uns nicht weiter stören.

 

Wichtig sind erst mal folgende Zeilen:

Successfully installed mysql-2.8.1

1 gem installed

Installing ri documentation for mysql-2.8.1..

und

 

Installing RDoc documentation for mysql-2.8.1 ...

 

So da war`s ...

Nun können wir mit Ruby on Rails unsere erste Applikation erstellen.

 

M.K