Ruby on Rails und Redmine installieren
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
- Dank an vinc3nt.fr, nach dieser Anleitung konnte man nicht mehr viel verkehrt machen: http://www.vinc3nt.fr/2010/03/installer-redmine-sur-un-synology-ds209ii/
- Dank auch an invisible blog, diese Anleitung ist sehr gut für die allgemeine Ruby-Installation auf der DS: http://blog.invisible.ch/2006/11/24/rails-on-synology-cubestation-cs-406/
Weitere Links, die für Recherche etc. nützlich sind:
- Redmine Systemanforderungen: http://www.redmine.org/wiki/redmine/RedmineInstall
- Prozessortypen der DS-Generationen: http://www.synology-wiki.de/index.php/Welchen_Prozessortyp_besitzt_mein_System%3F
- CPU Typ: http://forum.synology.com/wiki/index.php/What_kind_of_CPU_does_my_NAS_have
- Bootstrap: http://forum.synology.com/wiki/index.php/Overview_on_modifying_the_Synology_Server%2C_bootstrap%2C_ipkg_etc#Bootstrap