Ubuntu 64-bit'te 32-bit uygulama nasıl çalıştırılır?

106

Ubuntu 14.04'ü ve 32-bit yürütülebilir dosyaları içeren mevcut Android geliştirme SDK'sını kurdum. Bu 32 bitlik ikili dosyaları çalıştıramayacağımı buldum. Onları bash'tan başlatmaya çalışmak bana bir hata veriyor:

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

Orada olsa:

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

Eski günlerde, 32-bit desteği almak için 64 bit Ubuntu'ya 32 bit kitaplıklar yükleyebilirdi, ancak bu artık işe yaramaz.

32 bit uygulamaları 64 bit Ubuntu 14.04'te nasıl çalıştırırım?

    
sordu Thomas Stuefe 24.04.2014 09:29

4 cevap

160

64-bit çok mimari Ubuntu sisteminde 32 bit yürütülebilir dosya çalıştırmak için, i386 mimarisini ekleyip üç kütüphane paketleri yüklemek zorunda libc6:i386 libncurses5:i386 ve libstdc++6:i386 :

sudo dpkg --add-architecture i386

Ya da Ubuntu 12.04 LTS (Precise Pangolin) veya aşağıdakileri kullanıyorsanız, şunu kullanın:

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

Ardından:

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

Başarısız olursa, ayrıca

sudo apt-get install multiarch-support

Bu adımlardan sonra, 32 bit uygulamayı çalıştırabilmeniz gerekir:

./example32bitprogram
    
verilen cevap Avinash Raj 24.04.2014 09:31
6

İkilinize sahip olduğunuzda "Böyle bir dosya veya dizin yok" ifadesi görünebilir, ancak bazı kitaplıklardan yoksundur. % Co_de% paketini yüklerseniz, build-essential komutunu kullanabileceksiniz. Bu ldd komutu, hangi kütüphanelerin eksik olduğunu size gösterecektir. Sadece bu kütüphaneleri apt ile i386 kemerine takın. Bunun gibi: ldd ./adb | grep not Dikkat edin, bazı buggy paketleri 64bit sürümü köknarları silmeye çalışacaktır.

    
verilen cevap Barafu Albino 24.04.2014 10:44
4

Ve "adb" yi kullanmak isterseniz, bunun için bir paket var:

sudo apt-get install android-tools-adb

Ve yaklaşık 32 bit kitaplıklar - sadece:

sudo apt-add-architecture i386

yeterli olacaktır.

    
verilen cevap aastefanov 24.04.2014 14:29
2

Zanna ve Avinash Raj'ın mükemmel yanıtına ek olarak, gcc-multilib'i de yüklemek zorunda kaldım:

sudo apt-get install gcc-multilib

Muhtemelen bu, 64bit'de eski bir gcc sürümünü çalıştırmak istediğim içindir.

    
verilen cevap user2144067 04.09.2017 15:52

Etiketlerdeki diğer soruları oku