Wie starte ich eine 32-Bit-App in Ubuntu 64-Bit?

105

Ich habe Ubuntu 14.04 und das aktuelle Android-Entwicklungs-SDK installiert, das ausführbare 32-Bit-Dateien enthält. Ich habe festgestellt, dass ich diese 32-Bit-Binärdateien nicht ausführen kann. Der Versuch, sie von bash zu starten, gibt mir einen Fehler:

$ ./adb
bash: ./adb: No such file or directory

Aber es ist dort:

$ ls -al ./adb
-rwxrwxrwx 1 thomas thomas 1231255 Jan 17 13:31 ./adb
$ file ./adb
./adb: ELF 32-bit LSB  executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.8, not stripped. Same symptom for all the other 32-bit tools in the Android SDK. 

Früher konnte man 32-bit Bibliotheken auf 64-bit Ubuntu installieren, um 32-bit Unterstützung zu bekommen, aber das scheint nicht mehr zu funktionieren.

Wie starte ich 32-Bit-Anwendungen auf einem 64-Bit-Ubuntu 14.04?

    
Thomas Stuefe 24.04.2014, 09:29

4 Antworten

159

Um eine ausführbare 32-Bit-Datei auf einem 64-Bit-Ubuntu-System mit mehreren Architekturen auszuführen, müssen Sie die Architektur i386 hinzufügen und die drei Bibliothekspakete libc6:i386 , libncurses5:i386 und libstdc++6:i386 installieren:

sudo dpkg --add-architecture i386

Oder wenn Sie Ubuntu 12.04 LTS (Precise Pangolin) oder niedriger verwenden, verwenden Sie Folgendes:

echo "foreign-architecture i386" > /etc/dpkg/dpkg.cfg.d/multiarch

Dann:

sudo apt-get update
sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386

Wenn dies fehlschlägt, tun Sie auch

sudo apt-get install multiarch-support

Nach diesen Schritten sollten Sie die 32-Bit-Anwendung ausführen können:

./example32bitprogram
    
Avinash Raj 24.04.2014, 09:31
6

"Keine solche Datei oder kein Verzeichnis" wird angezeigt, wenn Sie Ihre Binärdatei haben, aber einige Bibliotheken fehlen. Wenn Sie build-essential package installieren, steht Ihnen der Befehl ldd zur Verfügung. Dieser Befehl ldd ./adb | grep not zeigt Ihnen, welche Bibliotheken fehlen. Installieren Sie diese Bibliotheken einfach in i386 arch mit apt. So: apt-get install libmissing:i386 Vorsicht, einige Buggy-Pakete werden versuchen, 64-Bit-Version Tannen zu löschen.

    
Barafu Albino 24.04.2014 10:44
4

Und wenn Sie "adb" verwenden möchten, gibt es dafür ein Paket:

sudo apt-get install android-tools-adb

Und etwa 32-Bit-Bibliotheken - nur:

sudo apt-add-architecture i386

ist genug.

    
aastefanov 24.04.2014 14:29
2

Zusätzlich zu der ausgezeichneten Antwort von Zanna und Avinash Raj musste ich auch gcc-multilib installieren:

sudo apt-get install gcc-multilib

Möglicherweise liegt das daran, dass ich eine alte gcc-Version auf 64bit ausführen wollte.

    
user2144067 04.09.2017 15:52

Tags und Links