Ausführen einer ausführbaren 64-Bit-Datei auf einem 64-Ubuntu-Lucid

8

Ich habe ein Ubuntu 10.04 64-Bit und versuche, eine ausführbare 64-Bit-Datei ohne Glück zu starten:

./lmrand1
-bash: ./lmrand1: No such file or directory    

ls -la lmrand1
-rwxr-xr-x 1 ysagon ysagon 191872 2011-09-05 18:13 lmrand1

file lmrand1
lmrand1: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked 
(uses sharedlibs), for GNU/Linux 2.6.9, stripped

Ich bin auch auf einem 64-Bit-Ubuntu:

uname -a
Linux dev 2.6.32-33-server #72-Ubuntu SMP Fri Jul 29 21:21:55 UTC 2011 x86_64 GNU/Linux

Die ausführbare Datei ist nicht beschädigt, ich kann sie auf einem Redhat-Unternehmen starten. Weiß jemand was los ist.

edit: sorry ich habe vergessen die ausgabe von ldd zu setzen

ldd lmrand1
    linux-vdso.so.1 =>  (0x00007fffabdff000)
    libpthread.so.0 => /lib/libpthread.so.0 (0x00007fe8d176c000)
    libm.so.6 => /lib/libm.so.6 (0x00007fe8d14e9000)
    libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007fe8d12d1000)
    libc.so.6 => /lib/libc.so.6 (0x00007fe8d0f4e000)
    libdl.so.2 => /lib/libdl.so.2 (0x00007fe8d0d4a000)
    /lib64/ld-lsb-x86-64.so.3 => /lib64/ld-linux-x86-64.so.2 (0x00007fe8d19a4000)
Yann Sagon
quelle
2
Möglicherweise ein defekter Abhängigkeits- / Laufzeit-Linker. Versuchen Sie ldd lmrand1und readelf -a lmrand1|grep interpreterstellen Sie sicher, dass alle aufgelisteten Dateien auf Ihrem System vorhanden sind.
siehe die Ausgabe von ldd in meiner Bearbeitung. readelf -a lmrand1|grep interpreter [Requesting program interpreter: /lib64/ld-lsb-x86-64.so.3]. Ich habe diese spezifische Datei nicht, aber wie Sie in der Ausgabe von ldd sehen können, wird sie einer anderen Datei zugeordnet.
Yann Sagon
1
Ok, ich sehe, dass sudo ln -s /lib64/ld-linux-x86-64.so.2 /lib64/ld-lsb-x86-64.so.3es funktioniert , wenn ich einen Simlink mache . Was ich nicht verstehe ist, warum ldd glücklich scheint?
Yann Sagon
Sie könnten versuchen zu strace ./lmrand1sehen, wie weit es kommt.
Waltinator
An Yann Sagon: Da es für "Symbolic Link" steht, lautet das Wort "symlink", nicht "simlink".
Waltinator

Antworten:

10

Versuchen Sie, das Linux Standard Base (lsb) -Paket zu installieren.

sudo apt-get install lsb
Beifuß GIS
quelle
1
Ich habe auch dieses Problem festgestellt, und die Installation des lsb-Pakets behebt es. Es scheint, dass die /lib64/ld-lsb-x86-64.so.3Notwendigkeit vorhanden sein muss, damit die ausführbare Datei ausgeführt werden kann, auch wenn lddsie /lib64/ld-linux-x86-64.so.2in ihrer eigenen Ausgabe recht glücklich neu zugeordnet wird .