Ruby on Rails und Redmine installieren

Aus Joachim Schuster Wiki
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Update 2010-09-12 brand new in english

Nun, da endlich die ersehnte DS210+ eingetroffen ist, habe ich die Installationsanleitung anwenden und überarbeiten können. Damit auch nicht-deutschsprachige Nutzer etwas davon haben, habe ich die überarbeitete Anleitung in Englisch verfasst.

Now that the longed DS210+ finally arrived, I checked the manual and reviewed it in complete English.

install Ruby on Rails and Redmine on DS210+

Voraussetzung

Die Synology DS106j hat einen Speicher von 32MB, was für den Betrieb eines File-/Web- und SVN-Servers durchaus ausreichend ist. Im späteren Installationsverlauf stellt sich allerdings heraus, dass gem bzw. rake beim Installieren der Gems bzw. beim erzeugen der DB Tabellen wirklich extrem lange brauchen. Dabei war die Hoffnung noch groß, dass ruby selbst relativ schlank sein könnte. Doch beim Ausführen von ruby zeigte sich, dass man sich die Tortur auch hätte sparen können. Die 32MB RAM sind einfach zu wenig. Für alle DS > 32MB (aber sogar wohl eher > 128MB) mit ausreichender Prozessorperformance sollte es aber gehen.

ruby und rubygems installieren

Redmine setzt exakt 1.8.7 voraus. Mit dem Paketmanager ipkg wird 1.9.1 installiert. Trotzdem sollte ein Betrieb möglich sein. Sämtliche Angaben basieren auf folgende (französische) Anleitung: http://www.vinc3nt.fr/2010/03/installer-redmine-sur-un-synology-ds209ii/ (evtl. mit Google übersetzen lassen).

Mit dem folgenden Befehl wird rubygems und automatisch das benötigte ruby installiert:

ipkg install rubygems

Zlib wird ebenfalls benötigt:

ipkg install zlib

unbedingt vor dem starten der gem installationen folgende Zeile in die Datei ~/.gemrc einfügen:

gem: -no-update-sources --no-ri --no-rdoc

Das bewirkt, dass der Update-Mechanismus nicht ausgeführt und die Erstellung der ri und RDoc Dateien nicht erfolgt. Da das Erzeugen der Dateien unter umständen sehr lange dauern kann, ist es besser bei der Synology Installation darauf zu verzichten.

Das Problem ist, dass gem sehr resourcenhungrig ist, die Synology 106 aber nur 32MB RAM zur Verfügung hat. Gem ist damit hoffnungslos unterversorgt, sodass permanent geswapt wird. Das lässt sich auch akkustisch wahrnehmen - die Festplatte rattert permanent.

Für die 0.9.4 Version von Redmine wird rack 1.0.1 benötigt, was standardmäßig bei rails 2.3.5 installiert werden würde. Daher ist es sinnvoll, rails schon in der Version 2.3.5 zu installieren. Zum Installieren von Rails folgende Befehle eingeben:

gem install rake (ca. 1 Stunde obwohl --no-ri --no-rdoc aktiviert)
gem install rails -v 2.3.5 (ca. 6 Stunden obwohl --no-ri --no-rdoc aktiviert)

Wer allerdings rails ohne Versions-Parameter installiert hat, kann auch einfach nur rack in der korrekten Version nachinstallieren:

gem install rack -v 1.0.1

Wer dazu noch das Problem hat, dass die Seite http://gems.rubyforge.org/ (bzw. neuer: http://rubygems.org/) nicht erreichbar ist, sollte es über einen Proxy versuchen: Wer keinen schnell zur Hand hat, kann evtl. hier einen wählen: http://www.xroxy.com/proxy-country.htm.

export HTTP_PROXY="http://PROXY_IP:PROXY_PORT"

MySql Anbindung installieren:

gem install mysql

funktionierte bei mir nicht. Auch der in vielen Foren beschriebene Weg über die mysql_config Angabe funktionierte nicht, da die mysql_config auf der DiskStation nicht zu finden ist.

gem install mysql -- --with-mysql-config=<pfad_zur_mysql_config>/msql_config

Geht auch anders, dazu im Home-Verzeichnis des root-users (/root) dann folgendes eingeben:

wget http://github.com/downloads/tmtm/ruby-mysql/ruby-mysql-2.9.2-beta.tar.gz
tar -xzvf ruby-mysql-2.9.2-beta.tar.gz
ruby-mysql-2.9.2-beta/
ruby setup.rb

redmine installieren

Wenn das alles funktioniert hat, steht der Installation von Redmine nichts mehr im Wege.

  • Soll der Dienst später unter einem bestimmten Nutzer laufen, diesen Anlegen über DSM, z.B. redmine.
  • Ein Verzeichnis mit den Userrechten von redmine anlegen:
su redmine
mkdir /volume1/redmine
  • redmine downloaden und enpacken
cd /volume1/redmine
wget http://rubyforge.org/frs/download.php/70486/redmine-0.9.4.tar.gz
tar xzvf redmine-0.9.4.tar.gz
  • ins config Verzeichnis wechseln und database.yml als Kopie erstellen
cd redmine-0.9.4/
cd config/
cp database.yml.example database.yml  
  • editieren (pico database.yml) und folgendes eintragen:
production:
adapter: mysql
database: redmine <= Anlegen in MySQL
host: localhost
username: redmine <= Anlegen MySQL, mit schreibrechten etc. auf Datenbank redmine
password: my_password <= evtl. vergebenes Passwort
  • Konfiguration erzeugen:
RAILS_ENV=production rake config/initializers/session_store.rb
  • Datenbank Tabellen erzeugen:
RAILS_ENV=production rake db:migrate
  • Server Starten
ruby script/server webrick -e production

Im Browser ansurfen:

http://<DiskStation_IP>:3000

Start Stop Skript

Im Ordner /usr/syno/etc.defaults/rc.d/ eine Datei mit dem Namen S97rubyrails.sh (o.ä.) erzeugen, mit chmod 755 S97rubyrails.sh ausführbar machen und folgenden Inhalt einfügen:

#!/bin/sh
STATUS='invalid'
case "$1" in
      start)
      /opt/bin/ruby /volume1/redmine/script/server webrick -d -e production 
      ;;
      stop)
      killall ruby
      ;;
      restart)
      $0 stop
      sleep 1
      $0 start
      ;;
      *)
      echo “usage: $0 { start | stop | restart}” >&2
      exit 1
      ;;
      esac

Danksagung und Links

Weitere Links, die für Recherche etc. nützlich sind: