Mengapa sistem 64-bit saya mencari repo 32-bit?

19

Saya telah menginstal 64,10 bit pada Laptop saya. Saat menjalankan pembaruan apt-get, ia mengunduh daftar paket untuk paket 32-bit (serta sumber dan daftar paket 64-bit). Mengapa ia mencari daftar paket 32-bit pada sistem 64-bit? Saya telah memasukkan salah satu item yang dicoba untuk ditemukan di bawah.

http://us.archive.ubuntu.com/ubuntu/dists/quantal-backports/multiverse/binary-i386/Packages
tgm4883
sumber

Jawaban:

28

Membingungkan, bukan? Biarkan saya jelaskan sedikit.

Mengapa?

  • Perangkat lunak 32-bit bekerja dengan baik pada kernel 64-bit dengan perangkat keras yang mampu 64-bit.
  • Beberapa perangkat lunak masih bergantung pada pustaka 32-bit tertentu. Ini tidak baik, tetapi kadang-kadang kita tidak memiliki kekuatan untuk mengubahnya.
  • Perangkat lunak 32-bit harus tersedia bagi sistem untuk memenuhi dependensi, sehingga ia menggunakan repositori 32-bit juga.

Saya dari awal 2011. Apa yang terjadi?

Dalam versi 64-bit Ubuntu sebelum 11.10, beberapa set pustaka 32-bit umum dikemas dalam satu ia32-libspaket tunggal yang diwakili oleh APT / Dpkg sebagai 64-bit dan di lokasi seperti itu di repositori. Jika Anda membutuhkan satu pustaka untuk aplikasi, itu akan tergantung pada 150+ MB dari pustaka 32-bit 1 . Jelas, ini bukan desain yang bagus.

Beberapa arsitektur?

Gagasan baru adalah untuk memperkenalkan apa yang disebut kemampuan "Multiarch" untuk APT / Dpkg dan alat-alat di sekitarnya. Ini disajikan dalam beberapa cetak biru di Launchpad, di sini adalah salah satunya . Oneiric (11.10) menjadi rilis pertama yang mendukung Multiarch.

Bagaimana cara kerjanya?

Anda dapat memberi tahu Dpkg arsitektur apa yang dapat dijalankan oleh sistem Anda. Pada instalasi 12,04 64-bit saya, ini ada di sini:

$ cat /etc/dpkg/dpkg.cfg.d/multiarch 
foreign-architecture i386

Ini membuka seluruh dunia i386paket, dengan amd64masih menjadi default:

$ apt-cache show libqt4-core                   | grep -E "^(Filename|Architecture)"
Architecture: amd64
Filename: pool/universe/q/qt4-x11/libqt4-core_4.8.1-0ubuntu4.3_amd64.deb

$ apt-cache show libqt4-core:i386              | grep -E "^(Filename|Architecture)"
Architecture: i386
Filename: pool/universe/q/qt4-x11/libqt4-core_4.8.1-0ubuntu4.3_i386.deb

Contoh di atas menunjukkan bahwa Multiarch memungkinkan pengelola paket untuk hanya membuat paket mereka tergantung pada libqt4-core:i386misalnya, dan memungkinkan untuk menginstal setiap 32-bit library / paket (dan dengan demikian untuk menginstal paket yang bergantung pada setiap 32-bit library / paket) , daripada set yang dipilih sebelumnya.

ia32-libs kesesuaian

Jika Anda terbiasa menginstal ia32-libspaket sebagai paket praktis untuk menginstal seperangkat pustaka 32-bit dasar, sekarang Anda dapat menggunakannya . Ini adalah metapackage sederhana tergantung pada set yang sama (atau paling tidak sangat mirip) perpustakaan, tetapi akan diinstal dengan kekuatan Multiarch.ia32-libs-multiarch Instal ia32-libs-multiarch

Bacaan terkait lebih lanjut

1 Untuk Lucid (10,04) ukuran pemasangan ia32-libspaket adalah 155,812,0 kB.

gertvdijk
sumber
5
Saya sarankan menjalankan dpkg --print-foreign-architecturesdaripada catting /etc/dpkg/dpkg.cfg.d/multiarch. Tidak ada setelah 12,04.
tumbleweed
Saya baru saja memasang apt-mirror di rumah dan berharap hanya mencerminkan repo 64-bit. Sangat disayangkan saya tidak bisa melakukan itu, tetapi saya mengerti mengapa sekarang dan masuk akal seperti ini. Jawaban diterima!
tgm4883
@ tgm4883 Anda dapat menghapus konfigurasi arsitektur asing jika Anda benar-benar ingin menjalankan amd64saja. Ini mirip dengan menjalankan Ubuntu yang lebih lama tanpa ia32-libstersedia.
gertvdijk
1
Saya mulai membaca dan dalam benak saya tertulis: hmm sepertinya posting dari gertvdijk: +) Goede post;)
Rinzwind