Mögliches Duplikat:
Einige Binärdateien können in der Chroot-Umgebung nicht ausgeführt werden (zsh:Not found)
Heute bin ich auf etwas gestoßen, das mich ratlos gemacht hat. Ein Mitarbeiter arbeitet mit einer bestimmten vorkompilierten Binärdatei, die er heruntergeladen hat (hier verfügbar). Auf dem Ubuntu 10.04 LTS-Server, an dem er arbeitet, führt der Versuch, diese Datei auszuführen, zu Datei nicht gefunden, selbst wenn die Berechtigungen richtig eingestellt sind.
Und doch, wenn ich dasselbe von OpenSUSE 11.4 aus versuche, läuft es einwandfrei. Ausführen von file
darauf gibt mir:
Ausführbare ELF-32-Bit-LSB-Datei, Intel 80386, Version 1 (SYSV), dynamisch verknüpft (verwendet gemeinsam genutzte Bibliotheken), für GNU/Linux 2.6.15, entfernt
Sowohl die Ubuntu- als auch die OpenSUSE-Boxen sind 64-Bit-Installationen und file
gibt auf beiden Rechnern dieselben Informationen zurück.
Was für mich gut aussieht. Und auf der Opensuse-Box gibt mir LDD sogar eine kurze Liste von Bibliotheksdateien. Handprüfung, alle diese angegebenen Dateien existieren auch auf dem Ubuntu-Server. Die Strace-Ausgabe ist jedoch anders:
Openuse:
execve(./trid”, [./trid”], [/* 122 vars */]) =0
Ubuntu (das Angeben des vollständigen Pfads ändert das Ergebnis nicht):
execve(./trid”, [./trid”], [/* 19 vars */]) =-1 ENOENT (Keine solche Datei oder Verzeichnis)
Was kann dazu führen, dass eine solche Datei auf diese Weise nicht ausführbar ist?
Akzeptierte Antwort:
Geben Sie
einldd ./trid
sowohl auf dem openSuse- als auch auf dem Ubuntu-System.
Ich vermute, Sie werden feststellen, dass letzterem eine Bibliotheksdatei fehlt.