Ruby on Rails und Redmine installieren: Unterschied zwischen den Versionen

Aus Joachim Schuster Wiki
Wechseln zu: Navigation, Suche
(Update 2010-09-12 brand new in english)
 
(11 dazwischenliegende Versionen von einem Benutzer werden nicht angezeigt)
Zeile 1: Zeile 1:
==Vorbereitung==
+
== Update 2010-09-12 brand new in english ==
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.
+
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.
Wer also Festplattenrattern nicht mag und nicht die Zeit von ca. 12 Stunden mit bringen will, der sollte RoR besser nicht mit der schwachbrüstigen DS106j in Erwägung ziehen.
+
 
 +
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==
 
==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:
 
Mit dem folgenden Befehl wird rubygems und automatisch das benötigte ruby installiert:
 
  ipkg install rubygems
 
  ipkg install rubygems
Zeile 9: Zeile 19:
 
Zlib wird ebenfalls benötigt:
 
Zlib wird ebenfalls benötigt:
 
  ipkg install zlib
 
  ipkg install zlib
 
wget http://rubyforge.org/frs/download.php/60717/rubygems-update-1.3.5.gem
 
gem install rubygems-update-1.3.5.gem
 
  
 
unbedingt vor dem starten der gem installationen folgende Zeile in die Datei ~/.gemrc einfügen:
 
unbedingt vor dem starten der gem installationen folgende Zeile in die Datei ~/.gemrc einfügen:
Zeile 17: Zeile 24:
 
Das bewirkt, dass der Update-Mechanismus nicht ausgeführt und die Erstellung der ri und RDoc Dateien nicht erfolgt.
 
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.
 
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.
 
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:
 
Zum Installieren von Rails folgende Befehle eingeben:
  gem install rake (ca. 1 Stunde, standard-Parameter)
+
  gem install rake (ca. 1 Stunde obwohl --no-ri --no-rdoc aktiviert)
gem install ruby-mysql (ca. 2 Minuten, --no-ri --no-rdoc aktiviert)
+
  gem install rails -v 2.3.5 (ca. 6 Stunden obwohl --no-ri --no-rdoc aktiviert)
  gem install rails (ca. 6 Stunden obwohl --no-ri --no-rdoc aktiviert)
+
  
rack 1.1.0 wird mit rails 2.3.8 ausgeliefert
+
Wer allerdings rails ohne Versions-Parameter installiert hat, kann auch einfach nur rack in der korrekten Version nachinstallieren:
rack 1.0.1 wird allerdings benötigt, daher noch
+
  gem install rack -v 1.0.1
  gem install rack -v=1.0.1
+
 
+
Das ganze dauert also wirklich verdammt lange.
+
  
 
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 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:
Zeile 34: Zeile 39:
 
  export HTTP_PROXY="http://PROXY_IP:PROXY_PORT"
 
  export HTTP_PROXY="http://PROXY_IP:PROXY_PORT"
  
Anschließend kann man sich die Seite im Browser anschauen und auch per gem installieren.
+
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

Aktuelle Version vom 13. September 2010, 11:19 Uhr

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: