Apa yang terjadi pada paket ia32-libs?


Jawaban:


97

Paket ia32-libs adalah hack untuk menginstal paket 32-bit pada instalasi 64-bit. Sejak Ubuntu versi 11.10 (Oneiric), Multi Arch telah ditambahkan. Salah satu tujuan untuk itu adalah menghapus ia32-libspaket. Sebagai gantinya, Anda harus menginstal perpustakaan 32-bit dari sebuah paket dengan:

sudo apt-get install package-name:i386

Anda tidak perlu khawatir tentang ini untuk paket di repositori standar (mis. winePaket). Untuk perangkat lunak eksternal, ini sedikit lebih sulit karena Anda harus menemukan dependensi secara manual. Dalam hal ini, gunakan mesin pencari favorit Anda untuk menemukan perpustakaan mana yang Anda butuhkan.

Tampaknya ia32-libs masih ada, tetapi hanya sebagai paket kenyamanan untuk menyertakan perpustakaan 32-bit yang umum. Paket ini sekarang menggunakan Multi Arch untuk menginstal paket 32-bit dengan benar.


17
Nah, bagaimana kita bisa menemukan semua dependensi dan menginstal pertama: i386 dari mereka?
user117

10
@wingman Jalankan ldd, melewati jalur ke biner sebagai argumen. Jika output berisi garis seperti libz.so.1 => not found, maka Anda perlu menemukannya libz.so.1. Anda dapat menggunakan package.ubuntu.com atau apt-file searchuntuk menemukan paket yang berisi file itu. Dalam contoh yang saya berikan, Anda harus menginstal zlib1g:i386.
Lekensteyn

1
saya di komputer dengan ubuntu 10.10. berikut beberapa tutorial tentang pengembangan android saya harus menginstal ia32-libs. jawaban Anda berbicara tentang 11,10, tetapi untuk komputer ini? apa yang harus aku lakukan?
nkint

1
@nkint 10.10 tidak didukung lagi. Jika Anda ingin melanjutkan, Anda perlu mengubah sumber paket Anda . Di 10.10 Anda harus menginstal ia32-libs. Tetapi meskipun demikian tidak ada jaminan bahwa SDK android bekerja dengan itu.
Lekensteyn

1
@FelipeMicaroniLalli Anda harus mengganti package-namedengan nama sebenarnya. Gunakan ldduntuk mencari tahu, lihat komentar kedua di atas.
Lekensteyn

43

Ubuntu 13.10

Apa yang terjadi?

The ia32-libspaket telah sepenuhnya digantikan oleh lib32z1 lib32ncurses5 lib32bz2-1.0. Ini seharusnya tidak menjadi masalah karena fungsinya masih ada, hanya di paket lain. Namun, kita tidak hidup di dunia yang ideal di mana semua orang memelihara paket mereka dan semua perangkat lunak FLOSS, sehingga beberapa paket masih bergantung pada ia32-libs.

Bagaimana saya bisa menginstal paket x yang tergantung pada ia32-libs

Ada 2 cara:

  1. Anda dapat mengemasnya kembali secara manual sehingga tidak lagi tergantung pada ia32-libs. (lebih disukai)
  2. Anda dapat menginstal ia32-libs dari repositori Ubuntu 13.04 (Raring Ringtail) ( tidak disukai sama sekali !, hanya jika metode pertama tidak berhasil )

1. Paket ulang paket lama

Saya akan menggunakan penerima citrix sebagai contoh, tetapi Anda dapat menggunakan metode ini untuk paket .deb:

Pertama, unduh paket .deb penerima citrix dari situs web mereka dan buat direktori sementara lakukan peretasan.

mkdir ica_temp

Ekstrak paket

dpkg-deb -x icaclient_13.0.0.256735_amd64.deb ica_temp
dpkg-deb --control icaclient_13.0.0.256735_amd64.deb ica_temp/DEBIAN

Buka file di gedit (atau editor favorit Anda)

sudo -H gedit ica_temp/DEBIAN/control

Temukan garis yang dimulai dengan Depends:.... hapus ia32-libsdan tambahkanlib32z1 lib32ncurses5 lib32bz2-1.0

Bangun kembali paket yang dimodifikasi

dpkg -b ica_temp icaclient-modified.deb

Dan instal

sudo dpkg -i icaclient-modified.deb
sudo apt-get install -f

Memasang penerima citrix juga memerlukan peretasan. Anda dapat menemukan instruksi instalasi lengkap di wiki Ubuntu

Anda dapat melakukan ini dengan paket .deb lama yang masih tergantung pada ia32-libs.

2. Instal ia32-libs dari repositori raring

Harap dicatat bahwa itu adalah praktik yang sangat buruk untuk menginstal paket lama! Sayangnya, untuk beberapa installer biner, Anda tidak punya pilihan lain.

Anda dapat mengunduh paket ia32-libs dari repositori raring . Unduh dan instal secara manual, maka dependensi harus diselesaikan.


Apa itu "FOS"? Saya mencoba: acronyms.thefreedictionary.com/FOS
Tampilan elips

1
@Elipticalview "Gratis dan Sumber Terbuka". Mengubahnya menjadi FLOSS (Perangkat lunak bebas / bebas dan sumber terbuka), yang lebih umum.
Galgalesh

"Paket lama repackage" bekerja sebagian besar untuk Ubuntu 16.04 Xenial - Anda hanya perlu menambahkan beberapa adaptasi ke nama-paket, biasanya menambahkan ": i386" -namespace ke akhir nama-paket. Beberapa paket juga memiliki nama yang berbeda, seperti libbz2-1.0: i386
Christian Benke

6

Saya membaca bahwa Anda seharusnya menginstal ia32-libs-multiarchpaket sebagai gantinya. Namun itu tidak berhasil untuk saya dan saya mendapatkan kesalahan ini

ia32-libs-multiarch:i386 : Depends: libgphoto2-2:i386 but it is not going to be installed.

Solusi yang berhasil bagi saya adalah menginstal paket-paket berikut:

sudo apt-get install libc6:i386 libgcc1:i386 gcc-4.6-base:i386 libstdc++5:i386 libstdc++6:i386

Berfungsi untuk luna OS dasar juga
camelCaseD

4

Jika Anda mendapatkan kesalahan itu, coba:

sudo apt-get update

Kemudian coba lagi:

sudo apt-get install ia32-libs

Saya baru saja melakukan instalasi baru 12,04, paket itu masih tersedia di repositori. Bahkan, saya mendapatkan kesalahan itu sendiri sebelum saya menjalankan pembaruan. Setelah itu, itu bekerja dengan baik.


1

Saya percaya ini kasus penggunaan khusus diganti dengan paket "lib32z1 lib32ncurses5 lib32bz2-1.0 lib32asound2", yang mungkin merupakan jawaban yang lebih spesifik dan berguna daripada mengatakan "Anda dapat menggunakan multi-lengkungan".


2
Apa? Tidak ada kasus penggunaan khusus dalam pertanyaan ini.
gertvdijk

1
@ gertvdijk: Paket itu sendiri merupakan kasus penggunaan terbatas; untuk tujuan yang lebih umum Anda dapat multi-lengkungan, tetapi untuk orang-orang yang menggunakan paket khusus ini sebelumnya, tampaknya telah diganti dengan "lib32z1 lib32ncurses5 lib32bz2-1.0 lib32asound2", yang dapat Anda instal tanpa harus menggunakan multi-arch : yang mencakup kasus penggunaan yang sama dengan paket sebelumnya. Pada dasarnya, saya menemukan jawaban ini tidak membantu, karena multi-lengkungan berlebihan karena alasan ia32-lib ada, terkejut tidak ada pengganti drop-in yang lebih langsung, dan tidak kecewa ketika saya meneliti ini lebih lanjut.
saurik

Ini adalah jawaban paling sederhana yang memecahkan masalah yang sama bagi saya. Meskipun libs yang diindikasikan tampaknya tidak ada hubungannya dengan memulai biner umum, ia berhasil.
Per Knytt

-2

Saya menginstal ia32-libs seperti ini (saya menjalankan Ubuntu 13.04 Raring Ringtail pada mesin 64 bit):

Periksa arsitekturnya sendiri:

$ dpkg --print-architecture

Periksa apakah arsitektur asing dipasang:

$ dpkg --print-foreign-architectures

Bergantung pada hasil dari dua perintah di atas, tiga perintah berikut mungkin bekerja (butuh waktu lama untuk memproses dalam kasus saya):

$ sudo dpkg --add-architecture i386 && sudo apt-get update && sudo apt-get install ia32-libs

4
Saya mendapatkan:Package ia32-libs is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source However the following packages replace it: lib32z1 lib32ncurses5 lib32bz2-1.0
foobarbecue
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.