>>  Linux >>

QMapShack unter Linux Mint 20.* mit Mate Desktop kompilieren

Stand: 03.07.2020

Meine Anleitung zu Mint 20.* oder wie ich es installiert habe.
Diese Anleitung funktionierte auch bei Debian Testing non-free KDE Plasma am 29.07.2020 ohne Probleme.

Voraussetzungen

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

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

Getestet hab ich alles mit Linux Mint 20.0 (deutsche Version von DeVIL-I386) mit Mate Desktop in der VirtualBox .

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

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

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

Git, Checkinstall und Subversion

sudo apt install git checkinstall subversion

einige Kleinigkeiten

sudo apt install debhelper inkscape libalglib-dev libc6-dev zlib1g-dev libbz2-dev libgraphics-magick-perl

OpenGL

sudo apt install freeglut3 freeglut3-dev

GDAL & PROJ4

sudo apt install gdal-bin libgdal-dev python3-gdal libproj-dev python3-dev

QT 5

sudo apt install qt5-default qttools5-dev-tools qttools5-dev qttools5-private-dev qtwebengine5-dev libqt5sql5-mysql

QUAZIP

sudo apt install libquazip5-1 libquazip5-dev

Damit sind die wichtigsten Vorbereitungen abgeschlossen und da das alles Pakete aus der Paketverwaltung sind kann man auch noch nichts verkehrt gemacht haben.
Ich selbst lasse nach diesen ganzen Install Zeugs hier mal das System neu starten.

Programminstall

So nun 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

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
# nun eine kleine Änderung in einer Datei damit die *.lib Dateien in den richtigen Ordner kommen
nano Makefile.conf
# hier in Zeile 48 den Pfad abändern von prefix=/usr/local auf prefix=/usr
# alles speichern und dann 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, mit ¨c¨ und ¨g¨ wird die Steuerdatei erstellt, und dann mittels make das Programm kompiliert.

cd QMapShack
# jetzt die Quelldaten holen
git clone https://github.com/Maproom/qmapshack.git serverdaten
# Ordner anlegen zum kompilieren
mkdir build_QMapShack
cd build_QMapShack
ccmake ../serverdaten
# Steuerdatei jetzt mittels ¨c¨ und ¨c¨ und ¨g¨ erstellen
make
# installieren und *.deb Paket erstellen
sudo checkinstall -D --pkgname=qmapshack --arch amd64 --backup=no
cd

Erster Start

Den ersten Start dann gleich mal im Terminal ausführen damit man eventuelle Fehler gleich sieht.

qmapshack

Bei mir startet das Programm ohne Fehlermeldung.
Beim Beenden des Programms laufen einige Speicherfehler im Terminal auf aber das ist alles OK so.

Update des Programms dann wie gehabt.

Fertig, Have Fun

So hier ein kleines Video vom QMS kompilieren - Video

Update des Programms

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
git 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*) git checkout dev
# 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!"
git checkout dev
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