Que fait apt-get --fix-missing et quand est-il utile?

38

De la page de manuel:

-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.

Ceci est déroutant:

  1. Comment "ignorer les manquants" et "corriger les manquants" peuvent-ils être synonymes de la même option?
  2. Que veut dire "retenir" dans ce contexte?
  3. Que signifie "gérer le résultat"?

Et dans quelle situation est-ce utile de toute façon? Lorsque vous essayez d'installer un paquet ne figurant pas dans l'index apt, vous obtenez le message suivant:

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

Les deux suggestions ( apt-get update, apt-get install --fix-missing...) sont-elles du tout équivalentes?

Steve Bennett
la source
Oui, c'est bizarre. J'ai toujours pensé que --fix-missingc'était le synonyme de -f. Cependant, le comportement devrait être identique à celui de Synaptic: essayez de ne mettre à jour que les paquets téléchargés.
Danatela

Réponses:

35

Ok, dans l'ordre:

  • (1) -m IGNORE manquant ou un correctif manquant des paquets (par opposition à -f cassé les paquets). Ces options sont des synonymes pour la même option. (Puisque pour le réparer, il ignore d'ici, il prend son propre étrangeté :-))
  • (2-3) Lorsque vous installez / mettez à niveau avec apt-get upgradeou avec apt-get install somepackage, généralement, apt tente de mettre à jour les dépendances. Cela signifie que certains packages peuvent avoir besoin de versions nouvelles ou mises à jour des packages existants, et ainsi de suite, dans une cascade de dépendances. Si certains de ces packages sont manquants ou échouent à la vérification de l'intégrité, il semble suspendre ce package et souhaite vous permettre de gérer le résultat en suivant la méthode du gestionnaire du package requis, si possible. Souvent, il arrête d'installer ce paquet.
  • (4) Avec apt-get updatevous téléchargez ce qui est nécessaire pour reconstruire la liste des dépendances.
    Après cela, vous pourrez réessayer apt-get install --fix-missingdans l’espoir que la liste mise à jour corrige le problème elle-même.
    Cela peut être très utile à certains moments, par exemple lorsque vous ajoutez une source pour les packages dans votre /etc/atp/sources.list, ou lorsque les fichiers d'index de packages ont été mis à jour.

Tous les programmes que vous pouvez utiliser sous Ubuntu ne proviennent pas des référentiels officiels Ubuntu et sont mis à jour avec les mêmes versions - ceci est rare.

De plus, il y a beaucoup de raisons pour lesquelles une installation peut être brutalement interrompue (un signal kill, une pénurie d'électricité, une défaillance du pilote graphique ...) Dans ces situations, apt-get updatepeut ne pas fonctionner, vous devez d'abord résoudre le problème avec apt-get install --fix-missingou certaines dpkg commandes.

Vous pouvez voir apt-get install --fix-missingcomme une version légère et conviviale de commandes comme dpkg-reconfigure --allou dpkg.

Hastur
la source
36
Cela a été fortement voté, mais pour ma part, je ne peux pas en comprendre un mot.
LondonRob
-1

Les étapes suivantes vont résoudre le problème:

  • Mettre à jour le nameserver 8.8.8.8dans/etc/resolve.conf
  • Courir sudo apt-get update
Suresh
la source