Mit Ubuntu 12-04 konnte ich im Terminal ein binary file starten. Mit 14.04 bekomme ich Fehlermeldung "cannot execute binary file". Wie kann ich das beheben?
cannot execute binary file with new 14.04
Anmeldungsdatum: Beiträge: Zähle... |
|
Anmeldungsdatum: Beiträge: 13933 |
|
(Themenstarter)
Anmeldungsdatum: Beiträge: 56 |
Es handelt sich um starten von einem potable apache server den ich für mein dokuwiki brauche. Hatte es bei 12.04 über autostarter executed. Hier die Ausgaben für: $ file portableLinuxApache portableLinuxApache: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, BuildID[sha1]=7892102614f3002e7bc7d464b54b446c5bbbf625, not stripped
$ ldd portableLinuxApache not a dynamic executable
$ uname -a Linux kilo 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
Bearbeitet von Antiqua: Hilfe zur Syntax: Codeblöcke wegen besserer Lesbarkeit eingefügt. |
Anmeldungsdatum: Beiträge: 13933 |
Von wo bzw. von wem hast Du dieses binary "portableLinuxApache", das in 12.04 funktioniert hat? Gibt es für dieses binary, keine plattformspezifischen Abhängigkeiten für die runtime? War dein 12.04 auch 64bit? EDIT: ... und noch die Ausgabe für: ls -la portableLinuxApache EDIT 2: Hast Du (das Kopieren bzw.) das Übertragen dieses binary, auch immer im binär-Modus gemacht? |
(Themenstarter)
Anmeldungsdatum: Beiträge: 56 |
$ ls -al -rwxrwxrwx 1 wb wb 462895 Okt 28 2010 portableLinuxApache Ich habe mit natilus kopiert. "portableLinuxApache" ist die Linux-version des apache web servers von Dokuwik on hte stick. (Ich weiss aber nicht wo diese her ist). |
Anmeldungsdatum: Beiträge: 13933 |
|
(Themenstarter)
Anmeldungsdatum: Beiträge: 56 |
12.04 war nur 32bit version. Die jetzige installation 14.04 ist eine Neuinstallation. Die ausgabe für readelf -a portableLinuxApache ist als file angehängt. |
Anmeldungsdatum: Beiträge: 13933 |
Die 14.04 ist neu und eine 64bit. In deinem binary "portableLinuxApache" ist rpath hardcodiert: 0x00000001 (NEEDED) Shared library: [libaprutil-0.so.0] 0x00000001 (NEEDED) Shared library: [libexpat.so.0] 0x00000001 (NEEDED) Shared library: [libapr-0.so.0] 0x00000001 (NEEDED) Shared library: [librt.so.1] 0x00000001 (NEEDED) Shared library: [libm.so.6] 0x00000001 (NEEDED) Shared library: [libcrypt.so.1] 0x00000001 (NEEDED) Shared library: [libnsl.so.1] 0x00000001 (NEEDED) Shared library: [libpthread.so.0] 0x00000001 (NEEDED) Shared library: [libdl.so.2] 0x00000001 (NEEDED) Shared library: [libc.so.6] 0x0000000f (RPATH) Library rpath: [$ORIGIN/lib] Wie ist die Ausgabe von: echo $ORIGIN ? |
(Themenstarter)
Anmeldungsdatum: Beiträge: 56 |
Das Kommando zeigt keine Ausgabe. Nach einer Lehrzeile kommt wieder der Prompt. $ echo $ORIGIN $ |
Anmeldungsdatum: Beiträge: 13933 |
|
(Themenstarter)
Anmeldungsdatum: Beiträge: 56 |
Ja eigentlich müsste ich die doch haben. Das "portableLinuxApache" ist ja dafür da dieses "dokuwiki on the stick" auf Linux und nicht auf MS-OS laufen zu lassen. Im Unterverzeichnis lib sind zu finden $ ls ./lib libapr-0.so.0 libaprutil-0.so.0 libexpat.so.0 Wie kann ich es unter dem Pfad "$ORIGIN/lib" zur Verfügung stellen? |
Anmeldungsdatum: Beiträge: 13933 |
|
(Themenstarter)
Anmeldungsdatum: Beiträge: 56 |
Schonmal herzlichen Dank! Jedoch bekomme ich jetzt folgende Fehlermedung wo ich nicht mehr weiter weiß... $ /home/wb/02DokuWiki-active/portableLinuxApache/portableLinuxApache -k start (20014)Error string not specified yet: Error retrieving pid file logs/httpd.pid |
Anmeldungsdatum: Beiträge: 13933 |
Wenn die Datei "logs/httpd.pid" vorhanden ist, dann diese löschen mit rm und portableLinuxApache erneut starten. Wenn die Datei "logs/httpd.pid" nicht vorhanden ist, dann nachschauen ob die Rechte vorhanden sind, damit diese pid-Datei erstellt werden kann. |
(Themenstarter)
Anmeldungsdatum: Beiträge: 56 |
Super - Es funktioniert jetzt! Vielen DANK!!! ☺ |