Impressum

QMapShack unter Linux Mint 18 / 18.1 Mate kompilieren (Xenial / Serena)

Voraussetzungen

21.12.2016 -- So nun ist auch Linux Mint18 erschienen, beruhend auf UBUNTU Xenial, und somit schreibe ich hier mal auf wie ich QMS wieder kompilierte habe. Die gleichen Schritte funktionieren auch unter Linux Mint 18.1 Serena.

Vorweg möchte ich aber auch erwähnen das QMS jetzt auch in den Paketquellen vorhanden ist, wenn auch nicht die aktuellste Version aber es ist da, wer also die Paketquelle nutzt muss im Moment mit Ver. 1.5.1 zufrieden sein. Bei Ubuntu Yakkety gibt es dann auch die aller neuste, die Ver. 1.6.3

18.03.2017 -- Neuste Anleitung zu Mint 18.1

Um das Programm kompilieren zu können.
Bedingungen sind jetzt:

Um das alles in den passenden Versionen zu bekommen reicht fast die normale Install, nur Routino benötigt noch etwas Handarbeit.

Getestet hab ich alles mit Linux Mint 18 64bit (deutsche Version von DeVIL-I386) mit Mate Desktop im VMware Player.

Als erstes legen wir mal einen Arbeitsordner an.
Ich Installiere dann alles weitere in diesen Ordner, so findet man später auch schneller die Pfade.

mkdir QMapShack

Nach einem System Update holen wir uns alle benötigten Abhängigkeiten.

Cmake, g++ (C++-Compiler)

sudo apt-get install cmake cmake-curses-gui g++

Mercurial, Checkinstall und Subversion

sudo apt-get install mercurial checkinstall subversion

einige Kleinigkeiten

sudo apt-get install debhelper inkscape

GDAL & Proj4

sudo apt-get install gdal-bin libgdal-dev python-gdal libbz2-dev libproj-dev

QT 5 aus den Paketquellen

sudo apt-get install qt5-default libqt5opengl5-dev libqt5webkit5-dev qtbase5-dev qttools5-dev qttools5-dev-tools qtscript5-dev libqt5sql5-mysql

QUAZIP

sudo apt-get install libquazip5-headers libquazip5-1 libquazip5-dev

Damit sind die wichtigsten Vorbereitungen abgeschlossen und ich selbst lasse hier mal das System neu starten.

Programminstall

Routino

So nun holen wir uns Routino und binden es in das System ein.
Aktuelles Routino wird vom Server geholt und kompiliert, dann mittels Checkinstall ins System eingebunden. Bei Fehlern hat man dann ein *.deb Paket und kann zur Not alles rückgängig machen.

cd QMapShack
svn co http://routino.org/svn/trunk routino
cd routino
# kompilieren
make
# installieren und *.deb Paket erstellen
sudo checkinstall -D --pkgname=routino --arch amd64 --backup=no
cd

QMapShack

Nun muss noch QMS besorgt werden.
Dazu holen wir uns das Programm vom Server.
Mittels ccmake wird dann die Datei für das kompilieren gebaut und dann mittels make kompiliert.

cd QMapShack
# jetzt die Quelldaten holen
hg clone https://bitbucket.org/maproom/qmapshack serverdaten
# Ordner anlegen zum kompielieren
mkdir build_QMapShack
cd build_QMapShack
ccmake ../serverdaten
make
# installieren und *.deb Paket erstellen
sudo checkinstall -D --pkgname=qmapshack --arch amd64 --backup=no
cd

Abschluss

Leider ließ sich das Programm, im Terminal, nicht starten. Es kam eine Fehlermeldung das routino Daten fehlten. Nach einiger Suche im Netz stellte sich heraus das noch einige Routino Sachen kopiert werden müssen. Aber Vorsicht das ist alles als «root» zu machen und kann das System gefährden.

sudo cp /usr/local/lib/libroutino.so /usr/lib/
sudo cp /usr/local/lib/libroutino.so.0 /usr/lib/

Fertig, Have Fun

Update des Programms

So damit sind wir auch schon am Schluss, um das Programm aktuell zu halten müssen dann immer der aktuellen Quelldaten eingebunden werden dazu in den Ordner ~/QMapShack/serverdaten wechseln und folgenden Befehl ausführen.

# Update aus folgenden Ordner ~/QMapShack/serverdaten
cd ~/QMapShack/serverdaten
hg pull
hg update
# wenn neue Daten da dann in den Ordner cd build_QMapShack wechseln und mit
cd ~/QMapShack/build_QMapShack
make
# ein neues Paket bauen, ins System dann wieder mit
sudo checkinstall -D --pkgname=qmapshack --pkgversion=1.1.0 --arch amd64 --backup=no
# alles einbinden, Funzt bei mir alles

So wer den Update Vorgang etwas automatisieren möchte kann sich ja ein Script bauen, könnte in etwa so ausschauen.

#!/bin/sh
# Script-Name: ./qms_update.sh
# variable
datum=$(date +"%Y-%m-%d")
# ***************************************************
# Update aus folgenden Ordner ~/QMapShack/serverdaten
cd ~/QMapShack/serverdaten
hg pull
# jetzt Benutzereingabe ob exit oder weiter
echo "Wenn keine geänderten Daten gefunden wurden kann man nun das Update beenden"
echo "Update Beenden $(tput bold)$(tput setaf 1)Ja (j)$(tput sgr0) oder $(tput bold)$(tput setaf 4)Nein (n)$(tput sgr0) eingeben:"
# Eingabe auswerten
read answer
echo "$(tput bold)$(tput setaf 4)Ihre Antwort war:$(tput sgr0)$(tput bold)$(tput setaf 2) $answer $(tput sgr0)"
case $answer in
n*|N*) hg update
# wenn neue Daten da dann in den Ordner cd build_QMapShack wechseln und mit
cd ~/QMapShack/build_QMapShack
make
# ein neues Paket bauen, ins System dann wieder mit
sudo checkinstall -D --pkgname=qmapshack --pkgversion=$datum --arch amd64 --backup=no
echo "$(tput bold)$(tput setaf 1)Update abgeschlossen$(tput sgr0)"
echo "$(tput bold)$(tput setaf 4)ENDE mit ENTER$(tput sgr0)"
read ENDE
exit 0;;
# ***************************************************
j*|J*|y*|Y*) echo "Update beendet!"
echo "$(tput bold)$(tput setaf 4)ENDE mit ENTER$(tput sgr0)"
read ENDE
exit 0;;
*) echo "Falsche Eingabe, Update wird abgebrochen"
echo "Fehler mussen eventuell von Hand beseitigt werden";;
esac
echo "$(tput bold)$(tput setaf 4)ENDE mit ENTER$(tput sgr0)"
read ENDE
exit 0