QMapShack v Linux Mint

screen155QMa­pShack je nástup­cem skvě­lé­ho mapo­vé­ho pro­gra­mu QLand­kar­te. Zkom­pi­lo­va­ná ver­ze je k dis­po­zi­ci zatím jen pro Win­dows, na Linu­xu si musí­me binár­ku zkom­pi­lo­vat sami. Naštěs­tí to není nic moc slo­ži­té­ho. Potře­bu­je­me k tomu jen pár vývo­jář­ských balíč­ků. A pro­to­že je apli­ka­ce stá­le v cel­kem čilém vývo­ji, bude mož­ná lep­ší, když si ji nain­sta­lu­je­me z pří­mo z vývo­jář­ské­ho repo­zi­tá­ře, abychom měli k dis­po­zi­ci vždy tu nej­no­věj­ší ver­zi. Napří­klad v posled­ních dvou dnech autor při­dal na žádost jed­no­ho z uži­va­te­lů drag&drop funk­ci­o­na­li­tu. Kdo by se spo­ko­jil jen s jed­no­rá­zo­vou insta­la­cí, vyne­chá balíč­ky g++mercurial.

Jedi­ným pro­blé­mem v Min­tu je ten, že stan­dard­ní sou­čás­tí dis­tri­buce je Cma­ke ve ver­zi 2.8, kdež­to pro zkom­pi­lo­vá­ní potře­bu­je­me mini­mál­ně ver­zi 3. Pro­to si nejdří­ve při­dá­me repo­zi­tář s aktu­ál­ní ver­zí a zak­tu­a­li­zu­je­me seznam SW:

sudo add-apt-repo­si­to­ry ppa:george-edison55/cmake-3.x
sudo apt-get upda­te

Pokud pou­ží­vá­me LMDE, kde nejsou k dis­po­zi­ci PPA, sta­čí, když si stáh­ne­me aktu­ál­ní ver­zi z cmake.org a nain­sta­lu­je­me tře­ba pomo­cí sh skrip­tu.

Pro kom­pi­la­ci QMa­pShack bude­me potře­bo­vat Qt5, GDAL a PROJ4 a také posled­ní ver­zi Rou­ti­no. Pro­to se dopo­ru­ču­je nain­sta­lo­vat násle­du­jí­cí balíč­ky:

sudo apt-get install­gra­phicsma­gick gra­phicsma­gick-lib­ma­gick-dev-com­pat cma­ke cma­ke-cur­ses-gui gdal-bin lib­g­dal-dev libgdal1h python-gdal lib­proj-dev build-essen­tial qttool­s5-dev-tools qttool­s5-dev qttool­s5-pri­va­te-dev qt5-default libqt5web­ki­t5-dev qtscript5-dev chec­kin­stall mer­cu­rial sub­ver­si­on liba­pa­che2-svn gcc make lib­c6-dev libz-dev libbz2-dev lib­gra­phics-magick-perl

Tím bychom měli mít všech­ny závis­los­ti spl­ně­né a může­me se pus­ti­ti do insta­la­ce Rou­ti­na, kte­ré, stej­ně jako QMa­pShack bude­me insta­lo­vat z nej­čer­s­tvěj­ších zdro­já­ků. Já udr­žu­ji všech­ny apli­ka­ce insta­lo­va­né mimo repo­zi­tá­ře v adre­sá­ři ~/compile, tak­že zde budu pra­co­vat s adre­sá­řem ~/compile/QMapShack. Rou­ti­no nej­pr­ve stáh­ne­me, zkom­pi­lu­je­me a vytvo­ří­me insta­lač­ní balí­ček, kte­rý také vzá­pě­tí nain­sta­lu­je­me:

cd ~/compile/QMapShack
svn co http://routino.org/svn/trunk rou­ti­no
cd rou­ti­no
make
sudo chec­kin­stall -D –pkgname=routino –pkgversion=3.0 –arch amd64 –backup=no
cd

Vše by mělo jít bez pro­blé­mů a při­stou­pí­me k insta­la­ci vlast­ní­ho QMa­pShack. Pře­pne­me se do pra­cov­ní­ho adre­sá­ře, pomo­cí Mer­cu­ry stáh­ne­me posled­ní ver­zi z vět­ve ser­ver­da­ten. Vytvo­ří­me pra­cov­ní adre­sář pro kom­pi­la­ci (mkdir build_QMapShack) a pře­pne­me se do něj. Poté pří­ka­zem ccma­ke ho zkom­pi­lu­je­me — v pro­stře­dí Cma­ke nej­pr­ve klá­ve­sou “c” spus­tí­me kon­fi­gu­ra­ci a po jejím dokon­če­ní spus­tí­me gene­ro­vá­ní sou­bo­rů klá­ve­sou “g”. Po dokon­če­ní kon­fi­gu­ra­ce spus­tí­me vlast­ní kom­pi­la­ci pomo­cí pří­ka­zu make a půjde­me si udě­lat kávu. Na mém sta­rouš­ko­vi T61 s dual core pro­ce­so­rem trvá kom­pi­la­ce asi půl hodin­ky, na T420 s i5 a SSD dis­kem asi 10 minut. Po jejím dokon­če­ní už apli­ka­ci jen buď nain­sta­lu­je­me pří­ka­zem sudo make install, nebo, stej­ně jako v pří­pa­dě Rou­ti­na vytvo­ří­me insta­lač­ní balí­ček a nain­sta­lu­je­me. 

cd ~/compile/QMapShack
hg clo­ne https://bitbucket.org/maproom/qmapshack ser­ver­da­ten
mkdir build_QMapShack
cd build_QMapShack
ccma­ke ../serverdaten -Wno-dev
make
sudo chec­kin­stall -D –pkgname=qmapshack –pkgversion=1.3.1 –arch amd64 –backup=no
cd

Pokud by se při kon­fi­gu­ra­ci vyskyt­ly něja­ké pro­blémy, je k dis­po­zi­ci nápo­vě­da. Osob­ně mi při zjiš­ťo­vá­ní v jakém balíč­ku se ta kte­rá potřeb­ná kom­po­nen­ta nachá­zí hod­ně pomohl apt-file. Pokud ho dosud v sys­té­mu nemá­te, nain­sta­lu­je­te ho pomo­cí sudo apt-get install apt-file a násled­ně musí­te aktu­a­li­zo­vat data­bá­zi sudo apt-file update dota­zy na chy­bě­jí­cí balíč­ky potom pro­vá­dí­me zadá­ním napří­klad apt-file search Qt5LinguistToolsConfig.cmake

QMapShack
QMa­pShack

Pokud bychom nechtě­li “ble­e­ding edge” ver­zi a spo­ko­ji­li se s posled­ní sta­bil­ní ver­zí, nahra­dí­me “ser­ver­da­ten” řetez­cem “QMa­pShack”. V pří­pa­dě, že autor vydá novou ver­zi nebo jen patch, tak se v ter­mi­ná­lu pře­pne­me do adre­sá­ře ~/compile/QMapShack/serverdaten a zadá­me hg pull && hg update default. Až se nám sou­bo­ry zak­tu­a­li­zu­jí, potom už jen z adre­sá­ře /build_QMapShack spus­tí­me pou­ze makesudo chec­kin­stall -D –pkgname=qmapshack –pkgversion=1.1.0 –arch amd64 –backup=no nebo make install. A samo­zřej­mě bude­me muset aktu­a­li­zo­vat i Rou­ti­no. Tím je insta­la­ce hoto­vá a QMa­pShack je při­pra­ven k pou­ží­vá­ní.

Na někte­rých sys­té­mech se může stát, že ani v pří­pa­dě, že insta­la­ce pro­běh­la bez chyb nejde apli­ka­ce spus­tit, pro­to­že nemů­že najít sou­bo­ry Rou­ti­na. V tako­vém pří­pa­dě se v mai­ling lis­tu vyskyt­la rada zko­pí­ro­vat někte­ré knihov­ny Rou­ti­na ruč­ně.

sudo mkdir /usr/share/routino
sudo cp /usr/local/share/routino/* /usr/share/routino/
cd ~/compile/QMapShack/routino/src/
sudo cp libroutino.so /usr/lib/
sudo cp libroutino.so.0 /usr/lib/
cd

Obě apli­ka­ce lze aktu­a­li­zo­vat i auto­ma­tic­ky, pomo­cí skrip­tu, osob­ně jsem nezkou­šel:

#!/bin/sh
# Script-Name: ./qms_update.sh
# vari­a­ble
datum=$(date +”%Y-%m-%d”)
# ***************************************************
# Upda­te aus fol­gen­den Ord­ner ~/QMapShack/serverdaten
cd ~/QMapShack/serverdaten
hg pull
# jetzt Benu­t­ze­re­in­ga­be ob exit oder wei­ter
echo “Wenn kei­ne geän­der­ten Daten gefun­den wur­den kann man nun das Upda­te been­den”
echo “Upda­te Been­den $(tput bold)$(tput setaf 1)Ja (j)$(tput sgr0) oder $(tput bold)$(tput setaf 4)Nein (n)$(tput sgr0) ein­ge­ben:”
# Ein­ga­be auswer­ten
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 upda­te
# wenn neue Daten da dann in den Ord­ner cd build_QMapShack wech­seln und mit
cd ~/QMapShack/build_QMapShack
make
# ein neu­es Paket bau­en, ins Sys­tem dann wie­der mit
sudo chec­kin­stall -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 “Upda­te been­det!”
echo “$(tput bold)$(tput setaf 4)ENDE mit ENTER$(tput sgr0)”
read ENDE
exit 0;;
*) echo “Fal­sche Ein­ga­be, Upda­te wird abge­bro­chen”
echo “Fehler mus­sen even­tu­ell von Hand bese­i­ti­gt wer­den”;;
esac
echo “$(tput bold)$(tput setaf 4)ENDE mit ENTER$(tput sgr0)”
read ENDE
exit 0

Zdroj skrip­tu a pří­pra­va a insta­la­ce DEB balíč­ku pře­vza­ty ze strán­ky http://altersachse.de/50-linux/qms/mint.php.