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://
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.