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


38

Na 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 falta' e 'corrigir falta' podem ser sinônimos para a mesma opção?
  2. O que 'reter' significa neste contexto?
  3. O que significa 'manipular o resultado'?

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?


Sim, é estranho. Eu sempre pensei que --fix-missingé o sinônimo de -f. No entanto, o comportamento deve ser o mesmo do Synaptic: tente atualizar apenas os pacotes baixados.
Danatela

Respostas:


35

Ok, em ordem:

  • (1) -m ignorar faltando ou correção faltando pacotes (em oposição a -f quebrados pacotes). Essas opções são sinônimos para a mesma opção. (Uma vez que para corrigi-lo ignora a partir daqui, é preciso sua própria estranheza :-))
  • (2-3) Quando você instala / atualiza com apt-get upgradeou com apt-get install somepackage, normalmente o apt tenta atualizar dependências. Isso significa 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 desses pacotes estiverem ausentes ou falharem na verificação de integridade, ele parece suspender este pacote e deseja que você lide com o resultado seguindo o método de manipulação do pacote exigido, se possível. Muitas vezes, para de instalar este pacote.
  • (4) Com apt-get updateo download do que é necessário para reconstruir a lista de dependências.
    Depois disso, você pode tentar apt-get install --fix-missingnovamente, na esperança de que a lista atualizada resolva o problema sozinha.
    Isso pode ser muito útil às vezes, como quando você adiciona uma fonte para pacotes no seu /etc/atp/sources.list, ou quando os arquivos de índice do pacote foram atualizados.

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

Além disso, existem muitas razões pelas quais uma instalação pode ser interrompida abruptamente (um sinal de interrupção, falta de energia, falha do driver gráfico ...) Nessas situações, apt-get updatepode não funcionar, por isso primeiro é necessário corrigir o problema com apt-get install --fix-missingou com alguns dpkg comandos.

Você pode ver apt-get install --fix-missingcomo uma versão leve e amigável de comandos como dpkg-reconfigure --allou dpkg.


36
Isso foi fortemente votado, mas eu, por exemplo, não consigo entender uma palavra.
LondonRob

-1

Os seguintes passos resolverão o problema:

  • Atualizar o nameserver 8.8.8.8em/etc/resolve.conf
  • Corre sudo apt-get update
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.