BINGO 
Vielen Dank an Ikonor, mmd und Jan ! Mit dem Hinweis auf Docker und dem “Fahrplan” aus #10 hab ich’s nun doch noch geschafft, die historischen OSM-Daten herauszutrennen.
Für alle, die das eventuell mal nachvollziehen wollen, hier ‘kurz’ my way:
Ausgangsproblem: Ich will ein package unter Linux installieren, mein OS ist aber für die vorhandenen packages nicht geeignet (zu ‘alt’) und selbst das Programm aus den sources kompilieren will/kann ich nicht … Auch die Aktualisierung des PC-OS erscheint zur Lösung der gestellten Aufgabe overdosed.
Schritt 1: ‘docker’ installieren (docker ist eine Virtualisierungssoftware, die Container bereitstellt, in der andere Software isoliert laufen kann. Das ganze Konzept ist offenbar neuer und smarter als das ‘altbekannter VM’s’ und kann wohl auch einiges mehr … Mit
$ wget -qO- https://get.docker.com/ | sh
und
$ sudo usermod -aG docker <username>
wird docker installiert und der User der Gruppe ‘docker’ hinzugefügt, um das ansonsten nervige ‘sudo’ zu unterbinden.
Schritt 2: einen ersten docker-Container anlegen und Ubuntu (latest - hier V16.04.2) und osmium in den Container packen:
<mit $ für Wirt-OS und # für Gast-OS im Container>
$ docker run -ti ubuntu bash
# apt-get -y update && apt-get -y upgrade
# apt-get -y install osmium-tool
# exit
$
Schritt 3: den frisch angelegten Docker-Container persitent machen (standardmäßig wird er geschlossen und wäre damit ‘wech’), dazu zunächst die Container-ID ermitteln
$ docker ps -l
$ docker commit [Container-ID] ubuntu16.04.2-mit-osmium
Nun haben wir im docker-Container als Gast-OS Ubuntu 16.04.02 mit osmium 1.3.0 am Laufen. Der Container kann mit
$ docker run -ti ubuntu16.04.2-mit-osmium
gestartet werden. Nur, das Gast-OS ist noch nicht in der Lage, mit dem Wirt-OS zusammen gemeinsame Verzeichnisse zu nutzen. Ganau das braucht es aber, da ich ja die im Container erzeugten Daten später weiterverarbeiten (rendern) möchte. Dazu muß nun ein sog. docker-volume angelegt werden = Schritt 4.
Dazu im Gast-OS ein geeignetes Verzeichnis (z.B. # /home/osmium-data) anlegen und wiederum persistent machen (Prozedere aus Schritt 3 wiederholen). Nun in das Verzeichnis des Wirt-OS wechseln, auf das auch das Gast-OS Zugriff haben soll. Mit
$ docker run -v `pwd`:/home/osmium-data -ti ubuntu16.04.2-mit-osmium
erfolgt die Koppelung beider OS zwischen den jeweils gewünschten Verzeichnissen.
Das war’s! Osmium 1.3.0 läuft nun auf einem Ubuntu-14.04-PC in einem docker-Container mit Ubuntu-16.04.2
Auffällig ist, dass diese Osmium-Version das Kommando ‘extract’ nicht unterstützt (Unknown command ‘extract’. Try ‘osmium help’). Das ist doof, können zwar mit time-filter
# osmium time-filter -o /home/osmium-data/germany_2009-04-15.osm.pbf /home/osmium-data/germany.osh.pbf 2009-04-15T12:00:00Z
die Daten zum gewünschten Zeitpunkt aus dem osh.pbf-file herausgetrennt werden, aber z.B. ‘germany’ bleibt immer ‘germany’. Als Datensäge habe ich mich erst einmal mit
$ osmconvert germany_2009-04-15.osm.pbf -b=10.4,53.65,11.1,54.05 -o=luebeck_2009-04-15.osm.pbf
‘gerettet’.
Möglicherweise hilft es hier, anstelle von
apt-get -y install osmium-tool
dem Hinweis aus #9 zu folgen und damit osmium 1.6.1 zu installieren - z.B. in einen zweiten Container …
Grüße aus Lübeck
Rainer