Hallo Wolfgang und Mitlesende,
wir wenden unterschiedliche Methoden bei der Verlinkung an. Ich nenne sie
mal "serielle" und "parallele" Verknüpfung. Beide haben ihre Berechtigung,
aber auch ihre Tücken - also Vor- und Nachteile. Man muss sich nur jeweils
über die Konsequenzen im klaren sein.
Ich hatte vor einem Monat das gleiche (oder ein sehr ähnliches) Problem,
nachdem ich OpenXP von einem 32-bit Rechner auf eine 64-bit Plattform
migriert hatte. Die Fehlermeldung beim Start von OpenXP lautete:
HK> openxp: error while loading shared libraries: libpanelw.so.5: cannot open shared object file: No such file or directory
Danach kamen sukzessive weitere Fehlermeldungen:
HK> openxp: error while loading shared libraries: libncursesw.so.5: cannot open shared object file: No such file or directory
HK> openxp: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory
Ich habe darauf das Problem in 10 Min. gelöst, indem ich jeweils
symbolische Links zu den 3 genannten Dateien erzeugt habe.
Nun zu deinem Kommentar:
wolfgan...@mein.gmx schrieb am 03.10.23
(Nachricht-ID:
782b7vl6...@wolfgang-bauer.at)
zum Thema "Re: [Linux OpenXP] cannot open libncursesw.so.5":
WB> Holger Kaulbach schrieb:
>> 1.) Prüfe, welche der Dateien und symbolischen Links bereits
>> vorhanden sind [*]:
>> /usr/lib/x86_64-linux-gnu$ ls -l libncursesw*
>> lrwxrwxrwx 1 root root 18 Aug 10 03:26 libncursesw.so.5 -> libncursesw.so.6.1
>> lrwxrwxrwx 1 root root 18 Sep 28 13:35 libncursesw.so.6 -> libncursesw.so.6.1
>> -rw-r--r-- 1 root root 231360 Sep 28 13:35 libncursesw.so.6.1
WB> wolfgang@wolfgang-bauer:/usr/lib/x86_64-linux-gnu$ ls -l libncursesw*
WB> -rw-r--r-- 1 root root 440422 Jul 23 16:58 libncursesw.a
WB> -rw-r--r-- 1 root root 32 Jul 23 16:58 libncursesw.so
WB> lrwxrwxrwx 1 root root 25 Okt 2 18:59 libncursesw.so.5 -> /usr/lib/libncursesw.so.6
^^^^^^^^^^^^^^^^^^^^^^^^^
Warum hast du hier einen - falschen - absoluten Pfad angegeben?
Liegt in "/usr/lib/" eine (andere) "libncursesw.so.6"?
WB> lrwxrwxrwx 1 root root 18 Sep 23 18:59 libncursesw.so.6 -> libncursesw.so.6.4
WB> -rw-r--r-- 1 root root 235752 Jul 23 16:58 libncursesw.so.6.4
Um etwas über die Inodes zu erfahren, also ob es sich bei den Dateien um
Hard- oder Soft- (oder gar keine) Links handelt, sollten wir die Parameter
des ls-Befehls erweitern und verfeinern, damit der Fokus auf die
relevanten Dateien gerichtet ist. Beispiel:
/usr/lib/x86_64-linux-gnu$ ls -li libncursesw.so.*
18647648 lrwxrwxrwx 1 root root 18 Aug 10 03:26 libncursesw.so.5 -> libncursesw.so.6.1
18612760 lrwxrwxrwx 1 root root 18 Sep 28 13:35 libncursesw.so.6 -> libncursesw.so.6.1
18612745 -rw-r--r-- 1 root root 231360 Sep 28 13:35 libncursesw.so.6.1
Entsprechend für die beiden anderen Dateien (den Pfad musst du natürlich
noch entsprechend anpassen):
>> /usr/lib/x86_64-linux-gnu$ ls -l libtinfo*
/usr/lib/x86_64-linux-gnu$ ls -li libtinfo.so.*
>> /usr/lib/x86_64-linux-gnu$ ls -l libpanelw*
/usr/lib/x86_64-linux-gnu$ ls -li libpanelw.so.*
WB> wolfgang@wolfgang-bauer:/usr/lib/x86_64-linux-gnu$ ls -l libtinfo*
WB> -rw-r--r-- 1 root root 318748 Jul 23 16:58 libtinfo.a
WB> lrwxrwxrwx 1 root root 35 Jul 23 16:58 libtinfo.so -> /lib/x86_64-linux-gnu/libtinfo.so.6
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Siehe oben! Gibt es diesen - absoluten - Pfad in deinem Dateisystem?
WB> wolfgang@wolfgang-bauer:/usr/lib/x86_64-linux-gnu$ ls -l libpanelw*
WB> -rw-r--r-- 1 root root 26562 Jul 23 16:58 libpanelw.a
WB> lrwxrwxrwx 1 root root 14 Jul 23 16:58 libpanelw.so -> libpanelw.so.6
WB> -rwxrwxrwx 1 wolfgang wolfgang 22688 Mai 16 20:25 libpanelw.so.5
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Hier ist wohl einiges schiefgelaufen.
WB> lrwxrwxrwx 1 root root 16 Sep 23 18:59 libpanelw.so.6 -> libpanelw.so.6.4
WB> -rw-r--r-- 1 root root 22688 Jul 23 16:58 libpanelw.so.6.4
>> 2.) Erstelle (im richtigen Verzeichnis) ggf. einen weiteren
>> symbolischen Link, z.B.:
(ggf. = gegebenfalls, also wenn noch kein passender Link vorhanden ist)
>> /usr/lib/x86_64-linux-gnu$ ln -s libncursesw.so.6 libncursesw.so.5
Sorry, an dieser Stelle ist mir ein kleiner Fehler (beim Copy & Paste)
unterlaufen: anstelle des "$"(-Prompts) muss natürlich ein "#" (= root-
Prompt) stehen. Oder du setzt ein "sudo" davor:
$ sudo ln -s libncursesw.so.6 libncursesw.so.5
(Gilt analog für die beiden anderen Dateien. Außerdem: Pfad anpassen!)
>> [*] Die hier angegebenen Pfade können abweichend sein. Ich arbeite
>> mit Debian GNU/Linux.
Viel Erfolg!
Freundlichen Gruß,
--Holger