Aktualizacja apt-get nie może pobrać plików, błąd „Tymczasowe usuwanie awarii…”


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.

Właśnie to widzę, gdy próbuję uciec sudo apt-get update. Wczoraj zrobiłem aktualizację mojej instancji i teraz tego doświadczam.

Odpowiedzi:


142

Przegląd

Twoje pytanie składa się z dwóch części:

  • naprawianie tymczasowych komunikatów rozstrzygania
  • naprawianie problemów z zarządzaniem pakietami

Tymczasowe rozwiązanie

Prawdopodobnie jest to albo:

  • tymczasowe z powodu nieprawidłowego przekazywania przez dostawcę usług internetowych nazwy DNS (DNS) do jego lub zewnętrznych serwerów DNS, lub
  • z powodu zmiany w sieci podobnie zablokował tę nazwę - na przykład nowy router / modem, rekonfigurując przełącznik z nową konfiguracją.

Przyjrzyjmy się możliwym problemom z rozwiązaniem DNS.

Najpierw tymczasowo dodaj do systemu znany serwer DNS.

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

Potem biegnij sudo apt-get update.

Jeśli to naprawi tymczasowe komunikaty dotyczące rozwiązywania problemów, poczekaj 24 godziny, aby sprawdzić, czy Twój dostawca usług rozwiązuje problem (lub po prostu skontaktuj się z usługodawcą internetowym) - lub możesz na stałe dodać serwer DNS do systemu:

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

8.8.8.8 jest własnym serwerem DNS Google.

źródło

Innym przykładem serwera DNS, którego można użyć, jest OpenDNS - na przykład:

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

problemy z zarządzaniem pakietami

Oprócz tymczasowych problemów z rozwiązaniem - masz kilka problemów z zarządzaniem pakietami, które wymagają naprawy - Zakładam, że próbowałeś ostatnio uaktualnić jedną wersję Ubuntu do następnej zalecanej wersji - w twoim przypadku z Natty (11.04) do Oneiric (11.10)

Otwórz terminal i wpisz

sudo nano /etc/apt/sources.list

Poszukaj wierszy, które mają na liście inną nazwę dystrybucji niż się spodziewałeś - w twoim przypadku - zaktualizowałeś ją, oneiricale masz inną nazwę wydanianatty

Na przykład poszukaj linii, które wyglądają deb http:/archive.canonical.com/ natty backports

Dodaj a #na początku wiersza, aby go skomentować - na przykład

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

Zapisz i uruchom ponownie:

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

Nie powinieneś mieć więcej błędów w nazwach wersji.

W chwili pisania tego, ewentualne wspólne nazwy uwalnianiu obejmują lucid, maverick, natty, oneiric, precise, quantal, raring, saucy, trusty, utopici vivid.


Doskonale działa :)
Maduka Jayalath,

Gdy podczas aktualizacji pojawi się jedna nazwa, możesz pominąć zbędne DNS i przejść bezpośrednio do listy źródeł.
SPRBRN

Nadal działa doskonale z 15.04 i 15.10
lxx

1
Co jeśli to nie zadziała?
Matt G

Najprawdopodobniej jest to problem DNS związany z dokerem, który nie pozwala na pomyślną aktualizację apt-get.
dashy

10

Możesz skomentować nierozwiązane repozytorium z pliku sources.list znalezionego w katalogu / etc / apt /

Po zmodyfikowaniu źródeł.list wyczyść repozytorium apt-get jako

apt-get clean

Następnie zaktualizuj

apt-get update

Błąd zniknie


1
Jest to trwałe rozwiązanie tymczasowego problemu z DNS. Jeśli zapomnisz go zmienić z powrotem, oprogramowanie z tego repozytorium nie będzie już aktualizowane ani dostępne do zainstalowania.
Chai T. Rex

10

Pamiętaj, że ta odpowiedź została napisana dla starych wersji Ubuntu. Obecne wersje używają lokalnego serwera nazw kontrolowanego przez D-Bus, którego dotyczy część diagnostyczna tej odpowiedzi, ale nie rozwiązanie. Jeśli /etc/resolv.confzawiera nameserver 127.0.1.1lub bardziej ogólnie nameserver 127.X.Y.Z, nie modyfikuj go.

„Tymczasowe usuwanie awarii…” oznacza, że ​​Twój DNS , tj. Tłumaczenie nazw hostów na adresy IP, nie działa. Czy ostatnio zmieniłeś konfigurację na swoim komputerze? Jeśli nie, może to być przejściowy błąd u Twojego usługodawcy internetowego.

Czy ping -n 8.8.8.8takie linie pokazują 64 bytes from 8.8.8.8: …? (Naciśnij Ctrl+, Caby zatrzymać ping.)

  • Jeśli nie, oznacza to konkretnie problem z łącznością IP. Uruchom traceroute -n 8.8.8.8i zobacz, gdzie się zatrzymuje: jeśli znajduje się w domu / biurze, sprawdź sprzęt sieciowy. Jeśli możesz skontaktować się z usługodawcą internetowym, zgłoś się do nich.
  • Jeśli tak, to masz konkretnie problem z DNS. Sprawdź zawartość /etc/resolv.conf; powinna być taka linia nameserver 1.2.3.4(być może więcej niż jedna z nich). Jeśli są tam wiersze, prawdopodobnie istnieje problem przejściowy u twojego dostawcy usług internetowych i możesz być w stanie obejść go, dodając nameserver 8.8.8.8do tego pliku (deklaruje to dodatkowy serwer DNS, który jest udostępniany bezpłatnie przez Google). Jeśli pierwsza liczba po nameserverto 127, oznacza to, że na twoim komputerze jest przekaźnik DNS (jest to dobra rzecz) i musisz go skonfigurować, a nie modyfikować /etc/resolv.conf. W nowoczesnych wersjach Ubuntu domyślnie jest przekaźnik DNS, to jest Dnsmasq i jest kontrolowany przez D-Bus.

1
Uwaga: ping 8.8.8.8 -c3ping tylko 3razy, nie musisz wtedy Ctrl + C. Można użyć dowolnego numeru w parametrze, jak -c5, -c1, -c100itp
Arda

nameservermusi być umieszczony na komputerze z nazwą hosta?
Albert

@albert /etc/resolv.confLiczy się ten na komputerze, na którym jesteś. Ale w nowoczesnych systemach wskazuje tylko lokalną maszynę, a jeśli masz problemy z DNS, musisz pracować z D-Bus i NetworkManager.
Gilles

3

Czasami, gdy jesteś za serwerem proxy, konieczne jest nawet wygenerowanie apt.confpliku /etc/apt/i wypełnienie go określonymi wpisami, takimi jak:

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

Jeśli wymagane jest uwierzytelnienie, plik konfiguracyjny wygląda następująco:

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

Przyczyną tego problemu może być również źle nazwany interfejs. Na przykład Temporary failure resolvingkomunikat o błędzie może być spowodowany przez interfejs, który nie jest nazwany, eth0ale ma niepoprawną nazwę eml.


Nie mogę się zalogować na swoje konto z powodu problemów, które napotykam za pomocą lightdm, muszę zaktualizować lightdm, czy możesz rozszerzyć swoją odpowiedź na temat rozwiązania problemu? Dzięki.
Shayan


0

Wystąpiły podobne błędy podczas uruchamiania apt-getpoleceń. Okazuje się, że miałem Panel aktualizacji oprogramowania otwarty na konsoli.
Wydawało się, że to blokuje linię poleceń apt-get, ale nie jestem pewien.


0

To jest problem z DNS. Sprawdź swój /etc/resolv.confplik.

na przykład w moim przypadku, gdy miałem ten problem i sprawdziłem ten plik, plik był pusty! ale powinien zawierać serwer nazw dns

moje:

nameserver 192.168.10.x

192.168.10.x is my gateway ip address


3
Witamy w AskUbuntu! Jeśli chcesz pomóc, odpowiedz bardziej wyczerpująco. Mam na myśli, opisz większość możliwych scenariuszy i sposobów przejścia lub opublikowania linku do odpowiedniego samouczka.
Danatela

1
Czy możesz wyjaśnić, co należy zameldować /etc/resolv.conf?
papukaija

0

Miałem ten błąd. Podążając za wskazówkami wsparcia Linode, skomentowałem wszystkie linie IPv6 w / etc / hosts, a następnie aktualizacja apt-get zaczęła działać.


0

Jeśli korzystasz z EC2, pamiętaj, aby sprawdzić, czy ustawienia grupy zabezpieczeń zezwalają na połączenia wychodzące z witrynami, z których aktualizujesz. Możesz ustawić opcję Cały ruch wychodzący i sprawdzić, czy działa.


0

Przyjęte rozwiązanie nie działa dla mnie. Przede wszystkim tylko apt-get updatemnie ostrzega Temporary failure resolving 'foo.com', ale kiedy spróbuję z nslookup foo.comlub ping foo.com, działa dobrze!

Mój niewiarygodnie brudny hack / fix za rozwiązanie tego błędu polega na ręcznym dodaniu rozwiązanych domen za /etc/hostspomocą tego krótkiego skryptu:

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
}

Teraz aktualizacja powinna działać:

resolveAptHosts && sudo apt-get update

Jeśli ktoś wie, dlaczego to obejście działa i jak naprawdę rozwiązać ten błąd, będę wiecznie wdzięczny. Próbowałem również użyć sudo apt-get update -o Acquire::ForceIPv4=truew celu wykluczenia problemów z IPv6, ale to też nie pomogło.


0

Mam ten sam problem na maszynie wirtualnej vmware, host i gość są Ubuntu. Rozwiązałem problem zmiany ustawienia maszyny wirtualnej. Zamiast używać NAT, ustawiłem Bridged. To zadziałało dla mnie


0

Komunikaty o błędach powinny wskazywać, że nie masz połączenia z Internetem. Możesz zobaczyć te same komunikaty o błędach, jeśli podczas pierwszej instalacji Ubuntu zdecydowałeś się nie wykonywać aktualizacji (nie łączyłeś się z Wi-Fi / Ethernet), które po zakończeniu instalacji i zrestartowaniu mogą pozostawić cię na niekończącym się ekranie animacji logowania Ubuntu (oglądanie ruchomych kropek). .. Zobaczysz powyższe komunikaty o błędach, jeśli teraz uruchomisz się do odzyskiwania i przy pytaniu o root, apt-get updatenawet po włączeniu sieci z odzyskiwania, które nie pozwala na połączenie z wifi, jeśli uniknąłeś wifi podczas pierwszej instalacji.

Rozwiązanie tego konkretnego przypadku krawędzi: podłącz kabel Ethernet, a następnie uruchom komputer w trybie odzyskiwania i wydaj apt-get updatelub zainstaluj ponownie od zera i upewnij się, że włączono aktualizacje

główny problem - jeśli podczas instalacji nie połączyłeś się z Wi-Fi, więc uniknąłeś aktualizacji pakietu, nie otrzymasz monitu o zalogowanie się do Wi-Fi podczas rozruchu odzyskiwania - powinno to zostać naprawione ... również powyższe komunikaty o błędach powinny po prostu powiedzieć, że nie masz Internetu połączenie

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.