GNU/Linux >> Belajar Linux >  >> Ubuntu

Apakah Mungkin Memiliki Perpustakaan 32 Bit Diinstal Pada Sistem 64 Bit?

Saya telah menginstal perpustakaan bersama 32 bit, namun saya masih mendapatkan kesalahan ini saat mencoba menginstal pogoplug:

./pogoplugfs: error while loading shared libraries: libfuse.so.2: wrong ELF class: ELFCLASS64

Apakah ada hal lain yang harus saya lakukan agar program dapat dimuat dari perpustakaan 32 bit?

Pertanyaan serupa diajukan awal tahun ini, tetapi tidak ada jawaban.

Jawaban yang Diterima:

Untuk beberapa pustaka, mungkin saja pustaka 32-bit dan 64-bit diinstal pada sistem 64-bit. Ini tersedia melalui ia32-libs paket di Ubuntu 10.04 dan sebelumnya. Menurut daftar file ia32-libs , tidak ada libfuse.so.2 file disertakan. Itu berarti Anda tidak dapat menginstal kedua arsitektur sekaligus.

Sejak Ubuntu 11.10 Oneiric, paket memungkinkan instalasi simultan untuk arsitektur berbeda yang disebut "Multi-Arch". Sayangnya, jika saya percaya daftar file libfuse2 di Oneiric, paket ini belum ditransisikan. Itu dapat ditentukan dari dependensi paket:jika sebuah paket bergantung pada multiarch-support (seperti libdrm2), ia memiliki dukungan untuk dukungan multi-lengkungan. Namun, ini tidak jaminan bahwa paket tersebut dapat diinstal untuk beberapa arsitektur secara bersamaan.

Untuk menanyakan cache lokal Anda untuk kemampuan multi-lengkungan suatu paket, ucapkan libc6 , jalankan:

apt-cache show libc6 | grep ^Multi-Arch:

Untuk perintah ini, outputnya adalah Multi-Arch: same . Itu berarti bahwa paket versi 32-bit dan 64-bit dapat diinstal sekaligus. Jika tidak ada output, paket tidak siap untuk dukungan multi-arch. Nilai lain yang mungkin adalah foreign (tidak dapat dipasang bersama, tetapi dapat digunakan untuk memenuhi dependensi arsitektur lain) dan allowed (iirc, hanya satu paket yang diizinkan untuk diinstal pada satu waktu, tetapi paket tersebut dapat digunakan untuk memenuhi dependensi paket lain)

Anda seharusnya dapat menginstal paket 32-bit pada sistem 64-bit dengan:

sudo apt-get install packagename:i386

Membangun libfuse 32-bit untuk mesin 64-bit

Karena pustaka sekering 32-bit tidak disertakan dengan ia32-libs , Anda tidak punya pilihan lain selain membangunnya sendiri.

  1. Instal dependensi build untuk fuse dan dapatkan kode sumber:

    sudo apt-get install ia32-libs libc6-i386
    sudo apt-get build-dep fuse
    apt-get source fuse
    
  2. Konfigurasikan pohon sumber dan bangun sekering (sesuaikan nama direktori jika diperlukan):

    cd fuse-2.8.4
    CFLAGS=-m32 ./configure --host=i386-linux-gnu
    make -j 50
    
  3. Instal pustaka sekering 32-bit (sesuaikan versinya):

    sudo ln -s libfuse.so.2.8.4 /usr/local/lib/libfuse.so.2
    sudo install -m644 lib/.libs/libfuse.so.2.8.4 /usr/local/lib/
    
  4. Perbarui cache penaut:

    sudo ldconfig
    
  5. (opsional) Hapus file sumber:

    cd ..
    rm -r fuse-2.8.4
    

Ubuntu
  1. Debian – Bagaimana Cara Mereplikasi Pilihan Paket yang Terinstal Dari Satu Sistem Debian Ke Yang Lain? (debian Mengi)?

  2. Bagaimana Cara Memasang Rayap?

  3. Tingkatkan Dari 32 Bit Menjadi 64 Bit??

  1. Bisakah Ubuntu Diinstal Pada Sistem Tanpa Koneksi Internet?

  2. Tidak Dapat Menginstal Beberapa Perpustakaan Pengembangan?

  3. Bagaimana saya bisa menentukan apakah Apache diinstal pada suatu sistem?

  1. Cara Menginstal Ruby di Windows 10

  2. Cara menginstal Webmin di Ubuntu 20.04

  3. Instal paket RPM di Ubuntu