apto para buscar archivos i386, aunque la arquitectura sea amd64

15

Estoy tratando de usar un repositorio de archivos para actualizar linux / ubuntu en una máquina no conectada. La arquitectura de esta máquina (uname -a):

x86_64 GNU/Linux

Los resultados de dpkg --printarchitectureson:

amd64

Es una máquina Trusty Tahr amd64, y específicamente dice esto, por ejemplo, en el archivo aptitude sources.list. Además, el "Acerca de esta computadora" en ubuntu dice específicamente que la máquina es de 64 bits. Entonces, instalé los paquetes amd64 en la máquina. Sin embargo, cuando intento hacerlo apt-get update, recibo errores como:

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

En otras palabras, aunque es una máquina de 64 bits, apt está tratando de leer inexplicablemente paquetes i386. ¿Por qué está haciendo esto y cómo puedo hacer que use los paquetes de 64 bits?

Tenga en cuenta que no hay nada en sources.list que especifique i386.

La única línea no comentada en el archivo sources.list es:

deb file:///var/spool/apt-mirror-trusty/mirror/archive.ubuntu.com/ubuntu trusty main restricted universe multiverse
Tyler Durden
fuente
Tal vez este soporte multiarch está habilitado por defecto en Ubuntu porque hay algunos proveedores de software asociados (Skype, cof, cof ...) que son lo suficientemente vagos como para no compilar cosas en i386 y amd64. Dado que se necesitarán bibliotecas multiarch, dpkgestá configurado de forma predeterminada para aceptar amd64 y es hermano de 32 bits. Digo "quizás" porque no he encontrado ninguna documentación oficial con esta información. Solo mis 2 centavos.

Respuestas:

25

En las amd64instalaciones de Ubuntu , i386se habilita como una arquitectura adicional de forma predeterminada. apt& co. espere que los repositorios proporcionen todas las arquitecturas configuradas, lo que causa el error que está viendo.

Como su espejo solo tiene amd64paquetes, debe marcarlo como tal:

deb [ arch=amd64 ] file:///var/spool/apt-mirror-trusty/mirror/archive.ubuntu.com/ubuntu trusty main restricted universe multiverse
Stephen Kitt
fuente
Ese fue de hecho el problema. Con esta solución, el repositorio fue aceptado y actualizado. Gracias.
Tyler Durden
2
dpkg --print-foreign-architecturesmostrará cualquier arquitectura para la cual el soporte multiarch esté habilitado; Tuve el mismo problema y (probablemente como era de esperar) el comando anterior informó:i386
sxc731
Esto no explica cómo deshabilitar la arquitectura adicional de forma predeterminada . Poner [arch=amd64]en cada deblínea no es una buena solución. Esto explica cómo hacerlo: superuser.com/a/714392/376867
midenok
2
@midenok ¿Dónde sugerí agregar un calificador de arco a cada descriptor de repositorio? Deshabilitar completamente i386para tratar con un repositorio problemático es bastante exagerado. Tenga en cuenta que si tiene múltiples repositorios que causan el problema descrito en la pregunta, eso indica un problema con el campo Arquitecturas de los repositorios , no con la configuración local.
Stephen Kitt
@Stephen Kitt Bien, resolviste un problema en particular descrito en la pregunta. Pero su solución no es práctica. La mayoría de las personas, incluido Asker y yo, no queremos ver los paquetes i386 en la lista de paquetes.
midenok