osmconvert startet nicht mehr für linux 32 bit

Kannst du mal ein

$ ls

in der Konsole eingeben. Dann wissen wir welche Daten in deinem Ordner liegen.

Ich würde ja meinen, dass in dem aktuellen Ordner keine *.pbf Datei liegt. Die musst du mit osmconvert natürlich vorher erzeugen. Also zum Beispiel:

./osmconvert32 /Pfad/zu/deiner/europe/pbf/europe.osm.pbf -B=d-dk-nl-b-l.poly -o=d-dk-nl-b-l.o5m

Grüße

Fangen wir mal von vorne an. Ich vermute Du nutzt sonst eher keine Kommandozeile?

Ein Programm 5fach zur Nutzung bereitzustellen ist unsinnig. Willst Du aber nicht ins System “reinpfuschen”, sondern in Deinem $HOME bleiben, dann wäre das so zu lösen:

Lege ein Verzeichnis “~/bin” an (sofern nicht schon vorhanden). Sorge mit einem “chmod 755 ~/bin” dafür, dass in dem Verzeichnis auch Dateien ausgeführt werden dürfen.

Dann wäre die Variable $PATH zu prüfen. Gibt ein “echo $PATH” nicht auch eben jenes (ggf. neu angelegte) Verzeichnis aus, so musst Du dieses hinzufügen. Da Du die Bash zu nutzen scheinst, wäre die richtige Datei hierfür “~/.bashrc” (wenn nicht vorhanden - anlegen). Diese dann um folgende Zeile ergänzen:

PATH=~/bin:$PATH

Sofort aktiviert wird der neue Inhalt, in dem Du nun “. ~/.bashrc” ausführst; Das “bin”-Verzeichnis in Deinem Home sollte von nun an in der Ausgabe von “echo $PATH” enthalten sein. Nun kopierst Du noch Dein “osmconvert32” in dieses Verzeichnis, und vergibst mit einem “chmod 755 ~/bin/osmvonvert32” noch die notwendigen Rechte. Und da das Ganze Null & nix mit sudo zu tun hat (Dein aktuelles osmconvert32 scheint der Gruppe “sudo” zu gehören - wie auch immer Du das angestellt hast), schiebst Du noch ein “chown marko:marko ~/bin/osmconvert32” hinterher.

Nun sollte “osmconvert32” von jedem Deiner Verzeichnisse aus aufrufbar sein - ohne “./” vorangestellt. Beispiel & Test:

cd /tmp
osmconvert32 --help

(Kleine Anmerkung für Andere: Wäre die aufgerufene Datei nicht vorhanden, wäre die Fehlermeldung eine Andere.)

Hallo

Ich mache meine Karten wie immer, die laufen komplett im Terminal.

Was Du vorschlägst klingt echt kompliziert.

Habe jetzt mal versucht die Hilfe aufzurufen.

Da kommt das :

marko@marko-desktop:~$ cd Dokumente/mkgmap
marko@marko-desktop:~/Dokumente/mkgmap$ osmconvert32 --help
osmconvert32: Befehl nicht gefunden.
marko@marko-desktop:~/Dokumente/mkgmap$ 

osmconvert32 liegt in Dokumente/mkgmap

Ich habe mehrere Ordner weil ich mitunter 2 Karten gleichzeitig mache.

So hier mal:
Im Verzeichnis mkgmapb
http://ubuntuone.com/08A5cZVuWtjGXKdS6r6iNJ

die erstellte

d-dk-nl-b-l.osm.pbf

Versuch eine o5m zu bekommen scheitert.

marko@marko-desktop:~$ cd Dokumente/mkgmapb
marko@marko-desktop:~/Dokumente/mkgmapb$ ./osmconvert32 d-dk-nl-b-l.osm.pbf --out-o5m >d-dk-nl-b-l.o5m
bash: ./osmconvert32: Datei oder Verzeichnis nicht gefunden
marko@marko-desktop:~/Dokumente/mkgmapb$

Gruß

Mit dem Befehl “osmconvert32” hast Du der Kiste gesagt, sie soll dasjenige osmconvert32 aufrufen, das dort liegt wo Programme hingehören. Da liegt bei Dir aber keines.

Mit dem früher benutzten Befehl “./osmconvert32” sagst Du der Kiste, sie soll dasjenige Programm osmconvert32 starten, das im aktuellen Verzeichnis liegt. Damals warst Du aber in einem Verzeichnis, in dem jedenfalls damals keines lag.

Es ist Quatsch, mehrere von den osmconvert32 rumliegen zu haben – das macht nur alle Updates und die Fehlersuche kompliziert – es sei denn, Du willst mehrere Versionen der Programme miteinander vergleichen. Dass Du mehrere Verzeichnisse benutzt und das osmconvert32 mehrfach gleichzeitig laufen lassen willst ist völlig ok – dazu braucht man das Programm aber nicht mehrfach.

Kopier mal eines der osmconvert32 in das Verzeichnis ~/bin. Wenn das Verzeichnis nicht nicht existiert, dann leg es an. Danach müsste in jedem Verzeichnis der Befehl “osmconvert32 --help” funktionieren (also der ohne das “./”). Danch würde ich alle anderen Exemplare des Programms wegwerfen und bei allen Aufrufen “./osmconvert32…” vorn das “./” entfernen.

Weide

“chmod u+rx ~/bin” wäre besser – die anderen Berechtigungen braucht man nicht anfassen.

@Win32netsky: Isse ganz einfach:

cd ~
mkdir bin
echo 'PATH=~/bin:$PATH' >> .bashrc
cd bin
wget -O - http://m.m.i24.cc/osmconvert.c | cc -x c - -lz -O3 -o osmconvert
mv osmconvert osmconvert32
chmod u+x osmconvert32
cd ~

Zeile für Zeile ausführen und freuen. Das ist (fast) genau was “Joachim Moskalewski” geschrieben hat und gar nicht schwer ;-). Ich hab’ gerade kein System zum Testen da, aber man soll ja sowieso nicht einfach Dinge aus dem Internet ungeprüft in seine Shell eingeben :stuck_out_tongue:

/edit: Skript an den Hinweis von SammysHP angepasst – Danke, ich war nicht ganz bei der Sache.

Warum überhaupt Rechte ändern? Bei Verzeichnissen bedeuten die Rechte:

r: Verzeichnisinhalt anzeigen
w: Verzeichnisinhalt ändern
x: “Durch das Verzeichnis durchgreifen” (auf Dateien/Unterverzeichnisse zugreifen)

Standardmäßig sollten die Rechte so aussehen:

drwxrwxr-x (775)

Und damit braucht absolut nichts geändert werden. Selbst wenn es

drwx------ (700)

wäre, hättest du als Besitzer immer noch vollen Zugriff darauf.

Gehte sogar ancora più einfach. Die dritte Zeile ist komplett überflüssig, weil der C-Compiler automatisch eine ausführbare Datei generiert. Auch die zweite läßt sich einsparen, indem man das Programm gleich so benennt, wie man es haben möchte:

wget -O - http://m.m.i24.cc/osmconvert.c | cc -x c - -lz -O3 -o osmconvert32

Es sei mal dahingestellt, warum man die Datei überhaupt lieber osmconvert32 statt osmconvert nennen möchte… Über Möglichkeiten wie ln -s oder alias hüllen wir wohl lieber den Mantel des Schweigens.

Dein “sollten” sagt eigentlich schon alles. Und: Wenn alles schon stimmte - dann ändere ich ja gar keine Rechte :wink:

Ich wüsste keine Definition die besagt, welche Rechte ein neues Verzeichnis oder eine neue Datei zu bekommen hat. Dagegen ist das m.W. sogar konfigurier- bzw. verbiegbar. Ich habe z.B. auch keinen Schimmer, ob da nicht ein externes Laufwerk wie auch immer gemountet ist… (ok, unwahrscheinlich - verdeutlicht aber die Thematik). Und bei einem User, der eine selbst hinkopierte Datei einer Gruppe “sudo” manuell geschenkt haben muss, setze ich lieber die Rechte manuell (er)neu(t). Sonst heißts nacher “tut auch net” - und wir stehen wieder auf der grünen Wiese.

Aber hier fehlen Basics. Die wollte ich vermitteln. Das mit dem “Fisch schenken” und “angeln zeigen”.

Ich habe in meinem Leben bereits tausende Verzeichnisse auf Dutzenden, wenn nicht sogar hunderten Systemen erstellt. Noch nie hatte ich als Eigentümer standardmäßig keine Lese-/Schreibrechte.

Jup, siehe umask. http://linux.die.net/man/2/umask
Mit dem gleichlautenden Befehl kann man sich die Maske anzeigen und modifizieren. Standard ist 0002. Zusammen mit den Standardrechten von Verzeichnissen (777) ergibt sich daraus 775.

Hallo
aus dem 1. post probiert:

Die osmconvert32 mit root Rechten in Rechner/bin kopiert.

Das kommt raus

marko@marko-desktop:~$ osmconvert32 --help
bash: /bin/osmconvert32: Datei oder Verzeichnis nicht gefunden
marko@marko-desktop:~$ 

Der 2. Vorschlage :

Da geht was nach dem download nicht ?
Da ist schwerwiegender Fehler ? Wohl was mit “zlib.h” ?
Habe jede Zeile einzeln mit Enter bestätigt.

marko@marko-desktop:~$ cd ~
marko@marko-desktop:~$ mkdir bin
marko@marko-desktop:~$ echo 'PATH=~/bin:$PATH' >> .bashrc
marko@marko-desktop:~$ cd bin
marko@marko-desktop:~/bin$ wget -O - http://m.m.i24.cc/osmconvert.c | cc -x c - -lz -O3 -o osmconvert
--2013-06-28 20:51:29--  http://m.m.i24.cc/osmconvert.c
Auflösen des Hostnamen »m.m.i24.cc (m.m.i24.cc)«... 80.67.17.148, 2a00:1158:0:300:432f::1
Verbindungsaufbau zu m.m.i24.cc (m.m.i24.cc)|80.67.17.148|:80... verbunden.
HTTP-Anforderung gesendet, warte auf Antwort... 200 OK
Länge: 415131 (405K) [text/plain]
In »»STDOUT«« speichern.

100%[======================================>] 415.131      765KB/s   in 0,5s   

2013-06-28 20:51:30 (765 KB/s) - auf die Standardausgabe geschrieben [415131/415131]

<stdin>:424:18: Schwerwiegender Fehler: zlib.h: Datei oder Verzeichnis nicht gefunden
Kompilierung beendet.
marko@marko-desktop:~/bin$ mv osmconvert osmconvert32
mv: der Aufruf von stat für »osmconvert“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden
marko@marko-desktop:~/bin$ chmod u+x osmconvert32
chmod: Zugriff auf »osmconvert32“ nicht möglich: Datei oder Verzeichnis nicht gefunden
marko@marko-desktop:~/bin$ cd ~
marko@marko-desktop:~$ 

Beste Grüße

Das Löschen ist nicht nötig. Falls man die Datei aus irgend einem Grund (z.B. wegen Verweisen an x Stellen) in mehreren Verzeichnissen braucht, genügt ein ln (hard link). Dann sieht es für normale Programme wie die Originaldatei aus, braucht aber praktisch keinen Platz, ist nur ein spezieller Eintrag im Verzeichnis. Einzige Bedingung ist, dass die Verzeichnisse für einen hard link auf dem selben physikalischen Datenträger liegen.

Hi,

Ja, kann man – ist aber eher was für erfahrene Leute.

Weide

Was ist denn “Rechner/bin”?

Ich hab keine Ahnung, wo Du jetzt noch osmconvert32 liegen hast. Mach doch mal:

sudo find / -name osmconvert32 -exec ls -l {} ;

und zeige das Ergebnis einschließlich des eingegebenen Befehls.

Weide

… und Du machst tapfer weiter mit den nachfolgenden Befehlen - und versuchst was zu verschieben, was gar nicht erstellt wurde.

Der Download hat funktioniert, da gab es keine Fehler. Der Compiler hat mit einem Fehler abgebrochen, da ein Development Paket zu zlib auf Deinem Rechner fehlt. Ich würde an Deiner Stelle aber statt dem selber Compilieren eher den Download Link aus dem Wiki verwenden (http://m.m.i24.cc/osmconvert32) - Dir fehlen schlicht massiv zu viele Grundlagen.

Vorgehensweise nun:

  1. Vorschlag von Weide annehmen: Suche alle Stellen, an denen Du nun noch ein “osmconvert*” liegen hast. Und bitte löschen - Dein bisheriges Chaos gehört dringend entsorgt.
  2. Download des Linux Binaries von osmconvert32.
  3. Verschiebe das nach “/usr/local/bin/osmconvert32” und setze die executable Flags (root-Rechte erforderlich).
  4. Nun kannst Du “osmconvert32 --help” aufrufen.

Und: Niemals eine Datei nach “/bin/” oder “/usr/bin/” verschieben - das ist Deiner Paketverwaltung vorbehalten. Eigenes kommt nach “/usr/local/bin/” (dann systemweit verfügbar) oder nach “~/bin/” (dann nur für Dich - das Anlegen hiervon habe ich bereits beschrieben).

Hallo

Download osmconvert32

Dann nach Rechner/user/local/bin mit root rechten kopiert (sonnst ging es nicht)

Zugriffsrechte gesetzt ( Datei als Programm ausführen )

Test aus Desktop ergibt das ?

marko@marko-desktop:~$ osmconvert32 --help
bash: /usr/local/bin/osmconvert32: Datei oder Verzeichnis nicht gefunden
marko@marko-desktop:~$ 

Der Suchbefehl gibt das aus :

marko@marko-desktop:~$ sudo find / -name osmconvert32 -exec ls -l {} \;
[sudo] password for marko: 
-rwxrwxr-x 1 marko root 226858 Jun 27 10:38 /usr/local/bin/osmconvert32
-rwxr-xr-x 1 marko marko 204887 Mär  4  2012 /home/marko/Dokumente/mkgmapkopie/osmconvert32
-rwxrwxr-x 1 marko marko 226858 Jun 21 13:21 /home/marko/Dokumente/mkgmapb/osmconvert32
-rwxrwxr-x 1 marko marko 226858 Jun 21 13:21 /home/marko/Dokumente/mkgmapf/osmconvert32
-rwxrwxr-x 1 marko marko 226858 Jun 21 13:21 /home/marko/Dokumente/mkgmap letzte stabile Version 24.06.2013/osmconvert32
-rwxr-xr-x 1 marko marko 226858 Jun 21 13:21 /home/marko/Dokumente/mkgmap/osmconvert32
-rwxrwxrwx 1 marko sudo 226858 Jun 27 10:38 /home/marko/Dokumente/mkgmapo/osmconvert32
-rwxrwxr-x 1 marko marko 226858 Jun 21 13:21 /home/marko/Dokumente/mkgmapk/osmconvert32
-rwxrwxr-x 1 marko marko 226858 Jun 21 13:21 /home/marko/Dokumente/mkgmap3d/osmconvert32
-rw-rw-r-- 1 marko marko 226858 Jun 27 10:38 /home/marko/Downloads/osmconvert32
-rwxr-xr-x 1 root root 226858 Jun 21 13:21 /bin/osmconvert32
marko@marko-desktop:~$ 

Da wo meine Karten sind ( Wie gesagt was immer ging / habe schon mal ein BUG gepostet auf Launchpad )

Gruß

Du hast ganz elegant den ersten Schritt von Joachim übersprungen…

edit: Noch schnell den Crosspost verlinken: http://forum.ubuntuusers.de/topic/osmconvert-startet-nicht/
Die Lösung steht übrigens bereits dort: http://forum.ubuntuusers.de/topic/osmconvert-startet-nicht/#post-5733737

edit2: Zeig uns mal bitte ein

$ uname -a

Dann schätze ich, dass

ldd /bin/osmconvert32

irgendwo ein

...=> not found

liefert.

Weide

Hallo
Hier das uname -a

marko@marko-desktop:~$ uname -a
Linux marko-desktop 3.8.0-25-generic #37-Ubuntu SMP Thu Jun 6 20:47:07 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
marko@marko-desktop:~$

Das andere bringt:

marko@marko-desktop:~$ ldd /bin/osmconvert32
	Das Programm ist nicht dynamisch gelinkt
marko@marko-desktop:~$ 

Lese grade das selber bauen. (Da steht aber nichts ?)

Das ist die Suche jetzt:

marko@marko-desktop:~$ sudo find / -name osmconvert32 -exec ls -l {} \;
-rwxrwxr-x 1 marko root 226858 Jun 27 10:38 /usr/local/bin/osmconvert32
marko@marko-desktop:~$

Nur eine.

Das ist der Test aus Desktop mit nur einer osmconvert32 :

marko@marko-desktop:~$ osmconvert32 --help
bash: /usr/local/bin/osmconvert32: Datei oder Verzeichnis nicht gefunden
marko@marko-desktop:~$

Sieht mir immer noch nach einem BUG aus?

Gruß

Jetzt bin ich baff. Weiter oben steht eine Dateilänge dieser Datei von 226858 Byte. Das ist genau die Länge der dynamisch gelinkten Datei zum Downloaden (bei http://wiki.openstreetmap.org/wiki/DE:Osmconvert#Download)) und ldd liefert mir die Abhängigkeiten für diese frisch runtergeladene Datei.

Weide

Nein, kein Bug. Du nutzt ein 64 bit System, die Datei wurde aber für 32 bit kompiliert. Ich weiß nicht, ob es ausreichend ist, das Paket ia32-libs zu installieren, da die Datei statisch gelinkt wurde. Es sollte also wirklich am besten sein, sich osmconvert selbst zu kompilieren. Installier dir zuerst zlib1g-dev, damit du die Header-Dateien davon hast. Anschließend kannst du den o.g. Befehl zum Kompilieren ausführen.