adatto alla ricerca di file i386, anche se l'architettura è amd64


15

Sto cercando di utilizzare un repository di file per l'aggiornamento di Linux / Ubuntu su una macchina non connessa. L'architettura per questa macchina (uname -a):

x86_64 GNU/Linux

I risultati di dpkg --printarchitecturesono:

amd64

È una macchina Trusty Tahr amd64 e lo dice specificamente, ad esempio, nel file aptitude sources.list. Inoltre, "Informazioni su questo computer" in Ubuntu specifica che la macchina è a 64 bit. Quindi, ho installato i pacchetti amd64 sulla macchina. Tuttavia, quando provo a fare apt-get update, ricevo errori come:

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

Quindi, in altre parole, anche se è una macchina a 64 bit, apt sta inspiegabilmente cercando di leggere i pacchetti i386. Perché lo sta facendo e come posso farlo usare i pacchetti a 64 bit?

Nota che non c'è nulla in sources.list che specifica i386.

L'unica riga non commentata nel file sources.list è:

deb file:///var/spool/apt-mirror-trusty/mirror/archive.ubuntu.com/ubuntu trusty main restricted universe multiverse

Forse questo supporto multiarch è abilitato di default su Ubuntu perché ci sono alcuni fornitori di software partner (Skype, cof, cof ..) che sono abbastanza pigri da non compilare cose su i386 e amd64. Poiché saranno necessarie librerie multiarch, dpkgè configurato per impostazione predefinita per accettare amd64 ed è fratello di 32 bit. Dico "forse" perché non ho trovato alcuna documentazione ufficiale con queste informazioni. Solo i miei 2 centesimi.

Risposte:


25

Nelle amd64installazioni di Ubuntu , i386è abilitato come architettura aggiuntiva per impostazione predefinita. apt& co. si aspettano che i repository forniscano tutte le architetture configurate, il che causa l'errore visualizzato.

Poiché il tuo mirror ha solo amd64pacchetti, dovresti contrassegnarlo come tale:

deb [ arch=amd64 ] file:///var/spool/apt-mirror-trusty/mirror/archive.ubuntu.com/ubuntu trusty main restricted universe multiverse

Questo era davvero il problema. Con questa correzione il repository è stato accettato e aggiornato. Grazie.
Tyler Durden,

2
dpkg --print-foreign-architecturesmostrerà qualsiasi architettura per cui è abilitato il supporto multiarch; Ho avuto lo stesso problema e (probabilmente non sorprendentemente) il comando sopra riportato riportava:i386
sxc731

Questo non spiega come disabilitare l'architettura aggiuntiva per impostazione predefinita . Mettere [arch=amd64]su ogni deblinea non è una buona soluzione. Questo spiega come farlo: superuser.com/a/714392/376867
midenok

2
@midenok Dove ho suggerito di aggiungere un qualificatore ad arco per ogni descrittore del repository? Disabilitare completamente la gestione i386di un repository problematico è piuttosto eccessivo. Se si hanno più repository che causano il problema descritto nella domanda, ciò indica un problema con il campo Architetture dei repository , non con la configurazione locale.
Stephen Kitt,

@Stephen Kitt Okay, hai risolto un problema particolare descritto nella domanda. Ma la tua soluzione non è pratica. La maggior parte delle persone, incluso Asker e me stesso, non vogliono vedere i pacchetti i386 nell'elenco dei pacchetti.
midenok,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.