Hogyan futtathatok 32 bites alkalmazást az Ubuntu 64 bites verziójában?

106

Telepítettem az Ubuntu 14.04-et és a jelenlegi Android fejlesztői SDK-t, amely 32 bites végrehajtható fájlokat tartalmaz. Megállapítottam, hogy nem tudom futtatni azokat a 32 bites binárisokat. Megpróbálom elindítani a bash-ből, hibát ad:

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

Bár létezik:

$ 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. 

A régi napokban csak 32 bites könyvtárakat lehet telepíteni a 64 bites Ubuntuban, hogy 32 bites támogatást kapjunk, de ez már nem működik.

Hogyan futtathatok 32 bites alkalmazásokat egy 64 bites Ubuntu 14.04 verzióban?

    
készlet Thomas Stuefe 24.04.2014 09:29
forrás

4 válasz

160

Ha egy 32 bites futtatható fájlt futtat egy 64 bites, többarchitektúrájú Ubuntu rendszeren, akkor hozzá kell adnia ai386 architektúrát, és telepítenie kell a három könyvtárcsomagot:libc6:i386,libncurses5:i386 éslibstdc++6:i386:

sudo dpkg --add-architecture i386

Vagy ha az Ubuntu 12.04 LTS (Precise Pangolin) vagy az alábbiakat használja, használja ezt:

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

Ekkor:

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

Ha nem sikerül, akkor is

sudo apt-get install multiarch-support

A fenti lépések után képesnek kell lennie a 32 bites alkalmazás futtatására:

./example32bitprogram
    
válasz adott Avinash Raj 24.04.2014 09:31
forrás
6

"Nem létezik olyan fájl vagy könyvtár", amely akkor jelenik meg, amikor binárisod van, de hiányzik néhány könyvtár. Ha telepíti abuild-essential csomagot, aldd parancs elérhető lesz. Ez aldd ./adb | grep not parancs megmutatja, hogy mely könyvtárak hiányoznak. Csak telepítse ezeket a könyvtárakat az i386-os archívummal apt. Így:apt-get install libmissing:i386 Vigyázz, néhány hibás csomag próbálja törölni a 64 bites változatát.

    
válasz adott Barafu Albino 24.04.2014 10:44
forrás
4

Ha pedig "adb" -ot szeretne használni, van egy csomag:

sudo apt-get install android-tools-adb

És körülbelül 32 bites könyvtárak - csak:

sudo apt-add-architecture i386

elég lesz.

    
válasz adott aastefanov 24.04.2014 14:29
forrás
2

Továbbá Zanna és Avinash Raj kitűnő válaszához telepítenie kellett a gcc-multilib-t is:

sudo apt-get install gcc-multilib

Lehetséges, hogy ez azért van, mert régi gcc verziót akartam futtatni 64 bites verzióban.

    
válasz adott user2144067 04.09.2017 15:52
forrás