Cosa fa apt-get --fix-missing e quando è utile?


38

Dalla pagina man:

-m, --ignore-missing, --fix-missing
  Ignore missing packages; if packages cannot be retrieved or fail the integrity 
  check after retrieval (corrupted package files), hold back those packages and 
  handle the result. 

  Use of this option together with -f may produce an error in some situations. If a 
  package is selected for installation (particularly if it is mentioned on the 
  command line) and it could not be downloaded then it will be silently held back. 

 Configuration Item: APT::Get::Fix-Missing.

Questo è confusionario:

  1. In che modo 'ignorare i dispersi' e 'correggere i dispersi' possono essere sinonimi della stessa opzione?
  2. Cosa significa "trattenere" in questo contesto?
  3. Cosa significa "gestire il risultato"?

E in quale situazione è utile comunque? Quando si tenta di installare un pacchetto non nell'indice apt, viene visualizzato questo messaggio:

E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

I due suggerimenti ( apt-get update, apt-get install --fix-missing...) sono equivalenti?


Sì, è strano. Ho sempre pensato che --fix-missingfosse sinonimo di -f. Tuttavia, il comportamento dovrebbe essere lo stesso di Synaptic: prova ad aggiornare solo i pacchetti scaricati.
Danatela,

Risposte:


35

Ok, per:

  • (1) -m ignore mancanti o fix mancanti pacchetti (in contrapposizione a -f rotti pacchetti). Queste opzioni sono sinonimi della stessa opzione. (Dal momento che per risolverlo ignora da qui ci vuole la sua stranezza :-))
  • (2-3) Quando si installa / si aggiorna con apt-get upgradeo con apt-get install somepackage, di solito apt tenta di aggiornare le dipendenze. Ciò significa che è possibile che alcuni pacchetti necessitino di versioni nuove o aggiornate di pacchetti esistenti e così via in una cascata di dipendenze. Se alcuni di questi pacchetti mancano o non superano il controllo di integrità, sembra sospendere questo pacchetto e , se possibile , desidera che tu vada a gestire il risultato seguendo il metodo di gestione del pacchetto richiesto. Spesso smette di installare questo pacchetto.
  • (4) Con apt-get updatete scarica ciò che è necessario per ricostruire l'elenco delle dipendenze.
    Dopodiché puoi riprovare apt-get install --fix-missing, nella speranza che l'elenco aggiornato risolva il problema da solo.
    Questo può essere molto utile a volte, ad esempio quando aggiungi un'origine per i pacchetti nel tuo /etc/atp/sources.listo quando i file dell'indice dei pacchetti sono stati aggiornati.

Non tutti i programmi che è possibile utilizzare con Ubuntu provengono dai repository ufficiali di Ubuntu e vengono aggiornati con le stesse versioni: questo è raro.

Inoltre, ci sono molte ragioni per cui un'installazione può essere interrotta bruscamente (un segnale di interruzione, una mancanza di alimentazione, un guasto del driver grafico ...) In quelle situazioni, apt-get updatepotrebbe non funzionare, quindi è necessario prima risolvere il problema con apt-get install --fix-missingo con alcuni dpkg comandi.

Puoi vedere apt-get install --fix-missingcome una versione leggera e amichevole di comandi come dpkg-reconfigure --allo dpkg.


36
Questo è stato fortemente votato, ma io, per uno, non riesco a capirne una parola.
LondonRob,

-1

Le seguenti operazioni risolveranno il problema:

  • Aggiorna l' nameserver 8.8.8.8in/etc/resolve.conf
  • Correre sudo apt-get update
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.