apt mencari file i386, meskipun arsitekturnya amd64

15

Saya mencoba menggunakan repositori file untuk memperbarui linux / ubuntu pada mesin yang tidak terhubung. Arsitektur untuk mesin ini (uname -a):

x86_64 GNU/Linux

Hasilnya dpkg --printarchitectureadalah:

amd64

Ini adalah mesin Trusty Tahr amd64, dan secara spesifik mengatakan ini, misalnya, dalam file aptitude sources.list. Juga, "Tentang Komputer Ini" di ubuntu secara khusus mengatakan mesinnya 64-bit. Jadi, saya menginstal paket amd64 di mesin. Namun, ketika saya coba lakukan apt-get update, saya mendapatkan kesalahan seperti:

W: Failed to fetch file:/var/spool/apt-mirror-trusty/mirror/archive.ubuntu.com/ubuntu/dists/trusty/main/binary-i386/Packages  File not found

Jadi, dengan kata lain, meskipun itu adalah mesin 64-bit, apt tidak bisa dijelaskan mencoba untuk membaca paket i386. Mengapa ia melakukan ini dan bagaimana saya bisa membuatnya menggunakan paket 64-bit?

Perhatikan bahwa tidak ada apa pun di sources.list yang menentukan i386.

Satu-satunya baris tanpa komentar dalam file sources.list adalah:

deb file:///var/spool/apt-mirror-trusty/mirror/archive.ubuntu.com/ubuntu trusty main restricted universe multiverse
Tyler Durden
sumber
Mungkin dukungan multiarch ini diaktifkan secara default di Ubuntu karena ada beberapa penyedia perangkat lunak mitra (Skype, cof, cof ..) yang cukup malas untuk tidak mengkompilasi hal-hal di i386 dan amd64. Karena pustaka multiarch akan dibutuhkan, dpkgdikonfigurasi secara default untuk menerima amd64 dan itu 32bit saudara. Saya katakan "mungkin" karena saya belum menemukan dokumentasi resmi dengan informasi ini. Hanya 2 sen saya.

Jawaban:

25

Pada amd64instalasi Ubuntu , i386diaktifkan sebagai arsitektur tambahan secara default. apt& rekan mengharapkan repositori untuk menyediakan semua arsitektur yang dikonfigurasi, yang menyebabkan kesalahan yang Anda lihat.

Karena mirror Anda hanya memiliki amd64paket, Anda harus menandainya sebagai:

deb [ arch=amd64 ] file:///var/spool/apt-mirror-trusty/mirror/archive.ubuntu.com/ubuntu trusty main restricted universe multiverse
Stephen Kitt
sumber
Memang itulah masalahnya. Dengan perbaikan ini repositori diterima dan diperbarui. Terima kasih.
Tyler Durden
2
dpkg --print-foreign-architecturesakan menampilkan arsitektur apa pun yang mendukung dukungan multiarch; Saya memiliki masalah yang sama dan (mungkin tidak mengejutkan) perintah di atas melaporkan:i386
sxc731
Ini tidak menjelaskan cara menonaktifkan arsitektur tambahan secara default . Menempatkan [arch=amd64]ke setiap debbaris bukanlah solusi yang baik. Ini menjelaskan cara melakukannya: superuser.com/a/714392/376867
midenok
2
@midenok Di mana saya menyarankan menambahkan kualifikasi lengkung ke setiap deskriptor repositori? Menonaktifkan sepenuhnya i386untuk menangani satu repositori yang merepotkan agak berlebihan. Perhatikan bahwa jika Anda memiliki beberapa repositori yang menyebabkan masalah yang dijelaskan dalam pertanyaan, itu menunjukkan masalah dengan bidang Arsitektur repositori , bukan dengan konfigurasi lokal.
Stephen Kitt
@Stephen Kitt Oke, Anda memecahkan satu masalah khusus yang dijelaskan dalam pertanyaan. Tetapi solusi Anda tidak praktis. Sebagian besar orang termasuk penanya dan saya sendiri tidak ingin melihat paket i386 dalam daftar paket.
midenok