A atualização do apt-get falha ao buscar arquivos, erro "Falha temporária ao resolver ..."


91
Err http://archive.canonical.com natty InRelease    
Err http://security.ubuntu.com oneiric-security InRelease               
Err http://extras.ubuntu.com natty InRelease                            
Err http://security.ubuntu.com oneiric-security Release.gpg
  Temporary failure resolving ‘security.ubuntu.com’
Err http://archive.canonical.com natty Release.gpg
  Temporary failure resolving ‘archive.canonical.com’
Err http://extras.ubuntu.com natty Release.gpg
  Temporary failure resolving ‘extras.ubuntu.com’
Err http://gb.archive.ubuntu.com oneiric InRelease
Err http://gb.archive.ubuntu.com oneiric-updates InRelease
Err http://gb.archive.ubuntu.com natty-backports InRelease
Err http://gb.archive.ubuntu.com oneiric Release.gpg
  Temporary failure resolving ‘gb.archive.ubuntu.com’
Err http://gb.archive.ubuntu.com oneiric-updates Release.gpg
  Temporary failure resolving ‘gb.archive.ubuntu.com’
Err http://gb.archive.ubuntu.com natty-backports Release.gpg
  Temporary failure resolving ‘gb.archive.ubuntu.com’

Reading package lists... Done
W: Failed to fetch http://gb.archive.ubuntu.com/ubuntu/dists/oneiric/InRelease      
W: Failed to fetch http://gb.archive.ubuntu.com/ubuntu/dists/oneiric-updates/InRelease  
W: Failed to fetch http://gb.archive.ubuntu.com/ubuntu/dists/natty-backports/InRelease  
W: Failed to fetch http://security.ubuntu.com/ubuntu/dists/oneiric-security/InRelease  
W: Failed to fetch http://archive.canonical.com/ubuntu/dists/natty/InRelease  
W: Failed to fetch http://extras.ubuntu.com/ubuntu/dists/natty/InRelease  
W: Failed to fetch http://archive.canonical.com/ubuntu/dists/natty/Release.gpg  Temporary failure resolving ‘archive.canonical.com’
W: Failed to fetch http://security.ubuntu.com/ubuntu/dists/oneiric-security/Release.gpg  Temporary failure resolving ‘security.ubuntu.com’
W: Failed to fetch http://extras.ubuntu.com/ubuntu/dists/natty/Release.gpg  Temporary failure resolving ‘extras.ubuntu.com’
W: Failed to fetch http://gb.archive.ubuntu.com/ubuntu/dists/oneiric/Release.gpg  Temporary failure resolving ‘gb.archive.ubuntu.com’
W: Failed to fetch http://gb.archive.ubuntu.com/ubuntu/dists/oneiric-updates/Release.gpg  Temporary failure resolving ‘gb.archive.ubuntu.com’
W: Failed to fetch http://gb.archive.ubuntu.com/ubuntu/dists/natty-backports/Release.gpg  Temporary failure resolving ‘gb.archive.ubuntu.com’
W: Some index files failed to download. They have been ignored, or old ones used instead.

É isso que estou vendo quando tento correr sudo apt-get update. Fiz uma atualização na minha instância ontem e agora estou enfrentando isso.

Respostas:


143

visão global

Há duas partes na sua pergunta:

  • corrigindo mensagens temporárias de resolução
  • corrigindo os problemas de gerenciamento de pacotes

Resolução temporária

É provável que esse problema seja:

  • temporário devido ao seu provedor de serviços de Internet não encaminhar corretamente o DNS (nomeação na Internet) para seus servidores DNS externos ou
  • devido a uma alteração em sua rede, bloqueou de maneira semelhante esse nome - por exemplo, novo roteador / modem, reconfigurando um switch com uma nova configuração.

Vamos analisar os possíveis problemas de resolução de DNS.

Primeiro, adicione temporariamente um servidor DNS conhecido ao seu sistema.

echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf > /dev/null

Então corra sudo apt-get update.

Se isso corrigir suas mensagens temporárias de resolução , aguarde 24 horas para ver se o seu ISP corrige o problema para você (ou apenas entre em contato com o ISP) - ou você pode adicionar permanentemente um servidor DNS ao seu sistema:

echo "nameserver 8.8.8.8" | sudo tee /etc/resolvconf/resolv.conf.d/base > /dev/null

8.8.8.8 é o servidor DNS do Google.

fonte

Outro exemplo de servidor DNS que você pode usar é o OpenDNS - por exemplo:

echo "nameserver 208.67.222.222" | sudo tee /etc/resolvconf/resolv.conf.d/base > /dev/null

problemas de gerenciamento de pacotes

Além dos problemas de resolução temporária - você tem alguns problemas de gerenciamento de pacotes que precisam ser corrigidos - suponho que você tenha tentado recentemente atualizar de uma versão do Ubuntu para a próxima versão recomendada - no seu caso, do Natty (11.04) para Onírico (11.10)

Abra um terminal e digite

sudo nano /etc/apt/sources.list

Procure por linhas que tenham um nome de distribuição diferente na lista do que você esperava - no seu caso - você atualizou, oneiricmas você tem outro nome de versãonatty

Por exemplo, procure linhas que se pareçam deb http:/archive.canonical.com/ natty backports

Adicione #a no início da linha para comentar - por exemplo

#deb http:/archive.canonical.com/ natty backports

Salve e execute novamente:

sudo apt-get update && sudo apt-get upgrade

Você não deve ter mais erros de nomeação de versão.

No momento da escrita deste, possíveis comum nomes de libertação incluem lucid, maverick, natty, oneiric, precise, quantal, raring, saucy, trusty, utopice vivid.


Perfeitamente funciona :)
Maduka Jayalath

Quando um nome aparece durante a atualização, você pode pular o mexer no DNS e ir diretamente para a lista de fontes.
SPRBRN

Ainda funciona perfeitamente com 15.04 e 15.10
lxx

11
E se isso não funcionar?
Matt G

É muito provável que um problema de DNS do docker não permita que a atualização do apt-get tenha êxito.
dashesy

11

Observe que esta resposta foi escrita para versões antigas do Ubuntu. As versões atuais usam um servidor de nomes local controlado pelo D-Bus, ao qual a parte do diagnóstico desta resposta se aplica, mas não a solução. Se /etc/resolv.confcontiver nameserver 127.0.1.1ou mais geralmente nameserver 127.X.Y.Z, não modifique.

“Resolução temporária de falhas…” significa que o seu DNS , ou seja, a tradução de nomes de host para endereços IP, não está funcionando. Você reconfigurou algo em sua máquina recentemente? Caso contrário, isso pode ser um erro transitório no seu ISP.

Será que ping -n 8.8.8.8mostram linhas de gostar 64 bytes from 8.8.8.8: …? (Pressione Ctrl+ Cpara parar ping.)

  • Caso contrário, você tem um problema específico de conectividade IP. Corra traceroute -n 8.8.8.8e veja onde ele pára: se estiver em sua casa / escritório, verifique seu equipamento de rede. Se você puder entrar em contato com seu ISP, reclame com eles.
  • Nesse caso, você especificamente tem um problema de DNS. Verifique o conteúdo de /etc/resolv.conf; deve haver uma linha como nameserver 1.2.3.4(possivelmente mais de um deles). Se as linhas estiverem lá, provavelmente existe um problema transitório no seu provedor de serviços de Internet, e você poderá contorná-lo adicionando nameserver 8.8.8.8a esse arquivo (isso declara um servidor DNS extra, fornecido gratuitamente pelo Google). Se o primeiro número depois nameserverfor 127, haverá uma retransmissão DNS na sua máquina (isso é bom), e você deverá configurar essa retransmissão DNS em vez de modificá-la /etc/resolv.conf. Nas versões modernas do Ubuntu, por padrão, existe um relé DNS, é o Dnsmasq e é controlado pelo D-Bus.

11
Nota: ping 8.8.8.8 -c3pings apenas algumas 3vezes, não é necessário Ctrl + C. Você pode usar qualquer número no parâmetro, como -c5, -c1, -c100etc.
Arda

nameserverdeve ser colocado na máquina do nome do host?
albert

@ albert O /etc/resolv.confque importa é o da máquina em que você está. Mas em sistemas modernos, apenas aponta para a máquina local e, se você tiver problemas de DNS, deve trabalhar com o D-Bus e o NetworkManager.
Gilles

Senhor, você é um gênio! Acabei de salvar meu dia. Obrigado
Akshay Agarwal

10

Você pode comentar o repositório não resolvido no arquivo sources.list encontrado em dir / etc / apt /

Após modificar o sources.list, limpe o repositório apt-get como

apt-get clean

Então atualize

apt-get update

O erro desapareceu


11
Esta é uma solução permanente para um problema temporário de DNS. Se você esquecer de alterá-lo novamente, o software desse repositório não será mais atualizado nem estará disponível para instalação.
Chai T. Rex

3

Às vezes, quando você está atrás de um servidor proxy, é necessário gerar um apt.confarquivo /etc/apt/e preenchê-lo com as entradas específicas, como:

Acquire::http::proxy "http://<yourproxyserver>:<Port>";
Acquire::https::proxy "http://<yourproxyserver>:<Port>";
Acquire::ftp::proxy "http://<yourproxyserver>:<Port>";

Se for necessária uma autenticação, o arquivo de configuração será semelhante a:

Acquire::http::proxy "http://<domain\user>:<password>@<yourproxyserver>:<Port>";
Acquire::https::proxy "http://<domain\user>:<password>@<yourproxyserver>:<Port>";
Acquire::ftp::proxy "http://<domain\user>:<password>@<yourproxyserver>:<Port>";

1

Esse problema também pode ser causado por uma interface com nome incorreto. Por exemplo, uma Temporary failure resolvingmensagem de erro pode ser causada por uma interface que não é nomeada, eth0mas incorretamente nomeada eml.


Não consigo entrar na minha conta devido a problemas com o lightdm, preciso atualizar o lightdm. Você pode expandir sua resposta sobre como resolver o problema? Obrigado.
Shayan 11/06


0

Ocorreu erros semelhantes ao executar apt-getcomandos. Acontece que eu tinha o Painel de Atualização de Software aberto no console.
Isso parecia estar bloqueando a linha de comando apt-get, mas não tenho certeza.


0

Este é um problema de DNS. Verifique seu /etc/resolv.confarquivo.

por exemplo, no meu caso, quando eu tive esse problema e verifiquei esse arquivo, o arquivo estava vazio! mas deve conter seu servidor de nomes de DNS

meu:

nameserver 192.168.10.x

192.168.10.x is my gateway ip address


3
Bem-vindo ao AskUbuntu! Se você quer ajudar, faça uma resposta mais detalhada. Quero dizer, cubra a maioria dos cenários possíveis e maneiras de publicar ou postar o link no tutorial apropriado.
Danatela 22/07/2013

11
Você poderia esclarecer o que deve fazer o check-in /etc/resolv.conf?
22613 Papukaija

0

Eu tive esse erro. Seguindo uma dica do suporte do Linode, comentei todas as linhas IPv6 em / etc / hosts e, em seguida, o apt-get update começou a funcionar.


0

Para aqueles que usam o EC2, verifique se as configurações do seu grupo de segurança permitem conexões de saída para os sites dos quais você está atualizando. Você pode definir a configuração Todo o tráfego de saída e ver se funciona.


0

A solução aceita não funciona para mim. Em primeiro lugar, apenas apt-get updateme avisa Temporary failure resolving 'foo.com', mas quando tento com nslookup foo.comou ping foo.com, funciona bem!

Meu hack / correção incrivelmente sujo para solucionar esse bug é adicionar os domínios resolvidos manualmente a /etc/hostseste script curto:

resolveAptHosts()
{
    mapfile -t hosts < <(
        sed -n -r '/^#/d; s;deb(-src)? (http://|ftp://)?([^/ ]+).*;\3;p'\
        /etc/apt/sources.list | sort | uniq )
    # delete all hosts from /etc/hosts, e.g., from an earlier call
    sudo sed -i -r '/^[0-9]{1,3}(\.[0-9]{1,3}){3}[ \t]+('"$( printf '|%s'\
        "${hosts[@]//./\\.}" | sed 's/^|//' )"')[ \t]*$/d' /etc/hosts
    for host in ${hosts[@]}; do
        ip=$( nslookup "$host" | sed -n -r 's|Address:[ \t]*([0-9.]+).*|\1|p' |
              tail -1 )
        sudo bash -c "echo $ip $host >> /etc/hosts"
    done
}

Agora a atualização deve funcionar:

resolveAptHosts && sudo apt-get update

Se alguém souber por que essa solução alternativa funciona e como resolver esse bug de verdade, ficarei eternamente agradecido. Também tentei usar sudo apt-get update -o Acquire::ForceIPv4=truepara excluir o IPv6 e resolver problemas, mas isso também não ajudou.


0

Eu tenho o mesmo problema em uma máquina virtual vmware, host e convidado, ambos são ubuntu. Resolvi o problema alterando a configuração da máquina virtual. Em vez de usar o NAT, eu configurei o Bridged. Funcionou para mim


0

As mensagens de erro devem estar dizendo que você não tem uma conexão com a Internet. Você pode ver essas mesmas mensagens de erro se, durante a instalação inicial do ubuntu, você optou por não executar atualizações (não se conectou ao wifi / ethernet) que após a instalação terminada e a reinicialização podem deixá-lo na tela interminável de animação de login do ubuntu (observando esses pontos em movimento). .. Você verá as mensagens de erro acima se agora inicializar no Recovery e no problema de prompt raiz, apt-get updatemesmo depois de ativar a rede no Recovery, que não permitirá a conexão com o wifi se você tiver evitado o wifi durante a instalação inicial.

Solução para este caso extremo: conecte um cabo ethernet e inicialize no Recovery and issue apt-get updateou reinstale a partir do zero e garanta a ativação das atualizações

problema principal - se você não se conectou ao wifi durante a instalação para evitar atualizações de pacotes, não receberá um prompt de login wifi durante a inicialização de recuperação - isso deve ser corrigido ... também as mensagens de erro acima devem indicar que você não tem Internet conexão

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.