O que o apt-get --fix-missing faz e quando é útil?

31

Da página do manual:

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

Isso é confuso:

  1. Como "ignorar a falta" e "corrigir a falta" podem ser sinônimos para a mesma opção?
  2. O que significa "reter" neste contexto?
  3. O que significa "manipular o resultado" significa?

E em que situação é útil, afinal? Quando você tenta instalar um pacote que não está no índice do apt, você recebe esta mensagem:

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

As duas sugestões ( apt-get update , apt-get install --fix-missing... ) são equivalentes?

    
por Steve Bennett 08.05.2014 / 06:41

1 resposta

28

Ok com pedido:

  • (1) -m ignora falta ou corrige os pacotes faltantes em oposição a -f pacotes quebrados. Essas opções são sinônimos para a mesma opção. (Desde que para consertá-lo ignora daqui, ele leva sua própria estranheza :-))
  • (2-3) Quando você instala / atualiza com apt-get upgrade ou com apt-get install somepackage , geralmente ele tenta atualizar dependências. Isso significa que talvez ele descubra que alguns pacotes precisam de versões novas ou atualizadas de pacotes existentes, e assim por diante, em uma cascata de dependências. Se alguns pacotes perderem ou falharem na verificação de integridade, parece que suspende este pacote e quer que você vá para manipular o resultado seguindo o método handle do pacote solicitante, se possível. Muitas vezes, pára a instalação do pacote.
  • (4) Com apt-get update , você faz o download do que é necessário para reconstruir uma lista atualizada de dependências.
    Depois disso, você pode tentar executar novamente apt-get install --fix-missing na esperança de que a lista reconstruída corrija o problema sozinha.
    Isso pode ser muito útil em momentos como quando você adiciona uma origem para pacotes em seu /etc/atp/sources.list ou quando os arquivos de índice de pacotes são atualizados enquanto isso.

Nem todos os programas que você pode usar no Ubuntu vêm dos repositórios oficiais do Ubuntu e são atualizados com as mesmas versões - isso é raro.

Além disso, há muitas razões pelas quais uma instalação pode ser abruptamente interrompida (um sinal de eliminação, uma falta de energia, uma falha de driver gráfico ...) Em todos esses casos pode ser impossível executar normalmente um apt-get update e é necessário antecipadamente para corrigir o problema com apt-get install --fix-missing ou com alguns comandos dpkg .

Você pode ver apt-get install --fix-missing como uma versão leve e amigável do comando, como dpkg-reconfigure --all ou dpkg .

    
por Hastur 08.05.2014 / 10:04