Обновлению apt-get не удается получить файлы, ошибка «Устранение временного сбоя…»


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

Это то, что я вижу, когда пытаюсь бежать sudo apt-get update. Я сделал обновление на моем экземпляре вчера и сейчас испытываю это.

Ответы:


144

обзор

Ваш вопрос состоит из двух частей:

  • исправление сообщений временного разрешения
  • решение проблем управления пакетами

Временное решение

Вполне вероятно, что эта проблема либо:

  • временно из-за того, что ваш интернет-провайдер неправильно перенаправляет интернет-имена (DNS) на свои или на внешние DNS-серверы, или
  • из-за изменений в вашей сети аналогичным образом заблокировано это наименование - например, новый маршрутизатор / модем, перенастроивший коммутатор с новой конфигурацией.

Давайте посмотрим на возможные проблемы с DNS.

Сначала временно добавьте известный DNS-сервер в вашу систему.

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

Тогда беги sudo apt-get update.

Если это исправляет ваши временные разрешающие сообщения, то либо подождите 24 часа, чтобы узнать, решит ли ваш провайдер проблему для вас (или просто обратитесь к вашему провайдеру), либо вы можете добавить DNS-сервер в вашу систему:

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

8.8.8.8 это собственный DNS-сервер Google.

источник

Другим примером DNS-сервера, который вы можете использовать, является OpenDNS - например:

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

вопросы управления пакетами

В дополнение к временным проблемам разрешения - у вас есть несколько проблем с управлением пакетами, которые необходимо исправить - я предполагаю, что вы недавно пытались обновить одну версию Ubuntu до следующей рекомендуемой версии - в вашем случае с Natty (11.04) до Онейрик (11.10)

Откройте терминал и введите

sudo nano /etc/apt/sources.list

Найдите в списке строки с другим именем дистрибутива, чем вы ожидали - в вашем случае - вы выполнили обновление, oneiricно у вас есть другое имя выпуска.natty

Например, ищите строки, которые выглядят как deb http:/archive.canonical.com/ natty backports

Добавьте a #в начало строки, чтобы закомментировать - например,

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

Сохраните и повторно запустите:

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

Вы не должны иметь больше ошибок именования релизов.

На момент написания этого, возможные общие имена релиза включают в себя lucid, maverick, natty, oneiric, precise, quantal, raring, saucy, trusty, utopicи vivid.


Отлично работает :)
Мадука Джаялат

Когда во время обновления появляется одно имя, вы можете пропустить манипуляции с DNS и перейти непосредственно к списку источников.
СПРБР

Все еще отлично работает с 15.04 и 15.10
lxx

1
Что если это не сработает?
Мэтт Дж

Скорее всего, это проблема DNS с Docker, которая не позволяет обновлению apt-get пройти успешно.
Дашесы

11

Обратите внимание, что этот ответ был написан для старых версий Ubuntu. В текущих версиях используется локальный сервер имен, управляемый D-Bus, для которого применяется диагностическая часть этого ответа, но не решение. Если /etc/resolv.confсодержит nameserver 127.0.1.1или в более общем смысле nameserver 127.X.Y.Z, не изменяйте его.

«Устранение временного сбоя…» означает, что ваш DNS , т. Е. Перевод имен хостов в IP-адреса, не работает. Вы недавно что-то перенастроили на своей машине? Если нет, это может быть временная ошибка у вашего интернет-провайдера.

ping -n 8.8.8.8Показывает ли линии как 64 bytes from 8.8.8.8: …? (Нажмите Ctrl+, Cчтобы остановить ping.)

  • Если это не так, у вас есть проблема с IP-подключением. Запустите traceroute -n 8.8.8.8и посмотрите, где он останавливается: если он находится в вашем доме / офисе, проверьте сетевое оборудование. Если вы можете связаться с вашим провайдером, пожаловайтесь им.
  • Если это так, у вас есть проблемы с DNS. Проверьте содержимое /etc/resolv.conf; должна быть строка вроде nameserver 1.2.3.4(возможно, несколько из них). Если линии есть, вероятно, существует временная проблема в вашем интернет-провайдере, и вы можете обойти ее, добавив nameserver 8.8.8.8в этот файл (это объявляет дополнительный DNS-сервер, который предоставляется Google бесплатно). Если первое число после nameserver127 - это значит, что на вашем компьютере есть DNS-ретранслятор (это хорошо), и вы должны настроить это DNS-реле, а не модифицировать его /etc/resolv.conf. В современных версиях Ubuntu по умолчанию есть ретранслятор DNS, это Dnsmasq , и он управляется D-Bus.

1
Примечание: ping 8.8.8.8 -c3пинг только 3раз, тогда вам не нужно Ctrl + C. Вы можете использовать любое число в параметре, например -c5, -c1и -c100т. Д.
Arda

nameserverдолжен быть размещен с машиной имени хоста?
Альберт

@albert Важно /etc/resolv.confто, что находится на машине, на которой вы работаете. Но в современных системах он просто указывает на локальную машину, и если у вас проблемы с DNS, вы должны работать с D-Bus и NetworkManager.
Жиль

Вы, сэр, гений! Просто спас мой день. Спасибо
Акшай Агарвал

10

Вы можете прокомментировать неразрешенный репозиторий из файла sources.list, найденного в каталоге dir / etc / apt /

После изменения sources.list очистите репозиторий apt-get как

apt-get clean

Тогда обновите

apt-get update

Ошибка исчезнет


1
Это постоянное решение временной проблемы DNS. Если вы забудете изменить его обратно, программное обеспечение из этого хранилища больше не будет обновляться или станет недоступным для установки.
Чай Т. Рекс

3

Иногда, когда вы находитесь за прокси-сервером, вам даже необходимо создать apt.confфайл /etc/apt/и заполнить его конкретными записями, например:

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

Если требуется аутентификация, файл конфигурации выглядит следующим образом:

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

Эта проблема также может быть вызвана неправильным именем интерфейса. Например, Temporary failure resolvingсообщение об ошибке может быть вызвано интерфейсом, который не назван, eth0а имеет неправильное имя eml.


Я не могу войти в свой аккаунт из-за проблем, с которыми я сталкиваюсь с lightdm, мне нужно обновить lightdm, можете ли вы расширить свой ответ о том, как решить проблему? Благодарю.
Шаян


0

Я испытывал похожие ошибки при запуске apt-getкоманд. Оказывается, у меня на консоли была открыта панель обновления программного обеспечения.
Казалось, это блокирует командную строку apt-get, но я не уверен.


0

Это проблема DNS. Проверьте свой /etc/resolv.confфайл.

например, в моем случае, когда у меня возникла эта проблема и проверил этот файл, файл был пустым! но он должен содержать ваш DNS-сервер имен

шахта:

nameserver 192.168.10.x

192.168.10.x is my gateway ip address


3
Добро пожаловать в AskUbuntu! Если вы хотите помочь, сделайте более подробный ответ. Я имею в виду, охватывают большинство возможных сценариев и способов пойти или опубликовать ссылку на соответствующий учебник.
Данатела

1
Не могли бы вы уточнить, что нужно проверить /etc/resolv.conf?
Папукайя

0

У меня была эта ошибка. Следуя совету поддержки Linode, я закомментировал все строки IPv6 в / etc / hosts, а затем начало работать обновление apt-get.


0

Для тех, кто использует EC2, не забудьте проверить, что настройки вашей группы безопасности разрешают исходящие соединения с веб-сайтами, с которых вы обновляетесь. Вы можете установить весь исходящий трафик и посмотреть, работает ли он.


0

Принятое решение не работает для меня. Во-первых, только apt-get updateпредупреждает меня о Temporary failure resolving 'foo.com', но когда я пытаюсь с nslookup foo.comили ping foo.com, он отлично работает!

Мое невероятно грязное решение для исправления этой ошибки - добавить разрешенные домены вручную с /etc/hostsпомощью этого короткого сценария:

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
}

Теперь обновление должно работать:

resolveAptHosts && sudo apt-get update

Если кто-нибудь знает, почему этот обходной путь работает и как по-настоящему решить эту ошибку, я буду бесконечно благодарен. Я также попытался использовать sudo apt-get update -o Acquire::ForceIPv4=true, чтобы исключить проблемы с разрешением IPv6, но это тоже не помогло.


0

Я получил ту же проблему в виртуальной машине VMware, хост и гостя оба Ubuntu. Я решил проблему, изменив настройки виртуальной машины. Вместо использования NAT я установил Bridged. У меня сработало


0

В сообщениях об ошибках должно быть сказано, что у вас нет подключения к интернету. Вы можете увидеть те же сообщения об ошибках, если во время первоначальной установки Ubuntu вы решили не выполнять обновления (не подключались к Wi-Fi / Ethernet), которые после завершения установки и перезагрузки могут оставить вас на бесконечном экране анимации входа в Ubuntu (наблюдая за этими движущимися точками). .. Вы увидите вышеупомянутые сообщения об ошибках, если вы сейчас загрузитесь в Recovery и в ответ на приглашение root apt-get updateдаже после того, как вы включите сеть из Recovery, которая не позволяет вам подключаться к Wi-Fi, если вы избегали Wi-Fi во время начальной установки.

Решение для этого конкретного случая: подключите кабель Ethernet, затем загрузитесь в Recovery и выполните apt-get updateили переустановите с нуля и убедитесь, что вы включаете обновления

Основная проблема - если вы не подключались к Wi-Fi во время установки, поэтому вы избегали обновлений пакетов, вам не будет предложено войти в систему через Wi-Fi во время загрузки восстановления - это должно быть исправлено ... также выше сообщения об ошибках должны просто сказать, что у вас нет Интернета соединение

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.