Startseite Redmine unter Alpine Linux
Eintrag
Abbrechen

Redmine unter Alpine Linux

Alpine Linux ist für embedded Platforms gedacht. Das System ist sehr klein und schnell, benötigt jedoch zur Installation Zugriff auf das Internet. Eine Redmine-Installation unter Alpine ist etwas schwierig, jedoch ist es möglich die aktuelle Redmine 3.4.x Version zu installieren.

Die Repositories müssen editiert werden, da der mitgelieferte Ruby-Interpreter anscheinend zu neu für Redmine ist, zumindest läßt sich damit keine Installation durchführen.

1
2
3
4
5
rm-demo:~# cd /etc/apk/
rm-demo:/etc/apk# vi repositories

http://alpine.mirror.wearetriple.com/v3.6/main
http://alpine.mirror.wearetriple.com/v3.6/community

Das ‘#’ vor dem Communityeintrag muss entfernt werden, anschließend das Repo aktualisiert werden.

1
2
rm-demo:~# apk update
rm-demo:~# apk upgrade

Jetzt wird diverse Software installiert.

1
rm-demo:~# apk add mariadb-dev curl curl-dev apache2-dev linux-headers ruby2.2-dev ruby2.2 g++ gcc make mysql apache2 build-base imagemagick imagemagick-dev mysql-client ruby2.2-rdoc ruby2.2-irb ruby2.2-bigdecimal

Redmine-Paket herunterladen.

1
rm-demo:~# wget http://www.redmine.org/releases/redmine-3.4.2.tar.gz

Redmine-Paket entpacken und nach /opt verschieben und einen Softlink auf die aktuelle Version anlegen.

1
2
3
4
5
rm-demo:~# tar zxvf redmine-3.4.2.tar.gz
rm-demo:~# mkdir /opt
rm-demo:~# mv redmine-3.4.2 /opt/
rm-demo:~# cd /opt/
rm-demo:/opt# ln -s redmine-3.4.2 redmine

Die Datenbank muss vorbereitet werden.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
rm-demo:~# mysql_install_db
rm-demo:~# cd /var/lib/mysql
rm-demo:/var/lib/mysql# chown -R mysql *
rm-demo:~# service mariadb start
rm-demo:~# mysql_secure_installation

Enter current password for root (enter for none):

Set root password? [Y/n] y
New password:
Re-enter new password:
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y

rm-demo:~# rc-update add mariadb

rm-demo:~# mysql -p
MariaDB [(none)]> create database redmine;
MariaDB [(none)]> grant all on redmine.* to redmine@localhost identified by "password";

Jetzt kann mit der Installation von Redmine gestartet werden.

1
2
3
rm-demo:~# cd /opt/redmine/config/
rm-demo:/opt/redmine/config# cp database.yml.example database.yml
rm-demo:/opt/redmine/config# vi database.yml

Der Teil um “production” muss angepasst werden:

1
2
3
4
5
6
7
production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: "password"
  encoding: utf8

Um Bundler ohne probleme durchlaufen zu lassen muss jetzt in die Trickkiste gegriffen werden. Auf Grund des Communityrepos ist Ruby als ruby2.2 im System vorhanden. Das wird jetzt etwas schmutzig per Softlink in ruby “verwandelt”. Hinzu kommen noch diverse andere Tools.

1
2
3
4
5
6
7
rm-demo:~# which ruby2.2
/usr/bin/ruby2.2
rm-demo:~# cd /usr/bin/
rm-demo:/usr/bin# ln -s ruby2.2 ruby
rm-demo:/usr/bin# ln -s gem2.2 gem
rm-demo:/usr/bin# ln -s rdoc2.2 rdoc
rm-demo:/usr/bin# ln -s irb2.2 irb

Weiter gehts mit der Installation.

1
rm-demo:/opt/redmine-3.4.2# gem install bundler

Wenn alle Schritte bisher richtig ausgeführt wurden, sollte die CLI folgendes ausgeben:

1
1 gem installed

Weiter gehts.

1
2
3
rm-demo:/opt/redmine-3.4.2# gem install tzinfo-data

rm-demo:/opt/redmine-3.4.2# bin/bundle install --without development test rmagick

Sollte gem meckern, dass es keine Timezone DataSourceInfo findet, muss das Gemfile editiert werden.

1
2
3
4
5
rm-demo:/opt/redmine-3.4.2# vi Gemfile

gem "i18n", "~> 0.7.0"
gem "ffi", "1.9.14", :platforms => :mingw if RUBY_VERSION < "2.0"
gem 'tzinfo-data' #Hier den Eintrag hinzufügen
1
2
3
rm-demo:/opt/redmine-3.4.2# bin/bundle exec bin/rake generate_secret_token
rm-demo:/opt/redmine-3.4.2# RAILS_ENV=production bin/bundle exec bin/rake db:migrate
rm-demo:/opt/redmine-3.4.2# RAILS_ENV=production bin/bundle exec bin/rake redmine:load_default_data

Damit ist Redmine installiert. Jetzt müssen die Verzeichnisrechte angepasst werden. Momentan gehört die Installation der UID 1000 mit der GID 1000, welche im System nicht vorhanden ist.

1
2
3
4
5
rm-demo:/opt/redmine-3.4.2# cd /opt/
rm-demo:/opt# chown -R root:root redmine-3.4.2/
rm-demo:/opt# cd redmine
rm-demo:/opt/redmine-3.4.2# chown -R apache:apache public/
rm-demo:/opt/redmine-3.4.2# chown -R apache:apache files/ log/ tmp/

Um Redmine über den Apache zur Verfügung zu stellen, wird das Modul Passenger benötigt. Die Installation ist etwas abenteuerlich.

1
2
rm-demo:/opt/redmine-3.4.2# gem install passenger
rm-demo:/opt/redmine-3.4.2# passenger-install-apache2-module

Enter drücken und Ruby auswählen. Jetzt wird passenger schreiben, dass die Apache Installation defekt ist. Warum? Das Tool sucht eine apachectl um den Server zu starten. Diese ist nicht vorhanden. Jetzt kommt die Trickkiste:

1
2
3
rm-demo:/opt/redmine-3.4.2# cd /usr/bin/
rm-demo:/usr/bin# ln -s /etc/init.d/apache2 apachectl
rm-demo:/usr/bin# passenger-install-apache2-module

Jetzt wird festgestellt, dass weder Prefork noch MPM eingebunden ist. Das ist jedoch unwichtig, Enter drücken, jetzt wird Passenger installiert.

Unter etc/apache2/conf.d wird die Datei redmine.conf angelegt. Folgender Inhalt:

1
2
3
4
5
6
7
8
9
10
11
12
LoadModule passenger_module /usr/lib/ruby/gems/2.2.0/gems/passenger-5.1.8/buildout/apache2/mod_passenger.so
   <IfModule mod_passenger.c>
     PassengerRoot /usr/lib/ruby/gems/2.2.0/gems/passenger-5.1.8
     PassengerDefaultRuby /usr/bin/ruby2.2
   </IfModule>

        <Directory /var/www/localhost/htdocs/redmine>
                AllowOverride None
                Options -Multiviews
                RailsEnv production
                RailsBaseURI /redmine
        </Directory>

Jetzt kann Enter gedrückt werden und die Fehlermeldung ignoriert werden.

1
2
3
rm-demo:~# cd /var/www/localhost/htdocs

rm-demo:/var/www/localhost/htdocs# ln -s /opt/redmine/public/ redmine

Den Webserver einmal neustarten.

1
2
rm-demo:/etc/apache2/conf.d# /etc/init.d/apache2 restart
rm-demo://etc/apache2/conf.d# rc-update add apache2

Jetzt sollte unter http:///redmine das Webinterface auftauchen. Login erfolgt mit admin / admin. Der Webserver kann jetzt entsprechend den eigenen Wünschen angepasst werden. Die Compiler sollten wieder entfernt werden.

1
rm-demo:/etc/apache2/conf.d# pk del gcc g++ build-base make

Das wars. Die Härtung des Web- und DB-Servers kann jeder für sich alleine durchführen.