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

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, Я сделал обновление на моем экземпляре вчера и сейчас испытываю это.

81

12 ответов

обзор

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

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

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

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

  • временно из-за того, что ваш интернет-провайдер неправильно перенаправляет интернет-имена (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

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

#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,

127

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

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

apt-get clean

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

apt-get update

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

10

Обратите внимание, что этот ответ был написан для старых версий 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). Если первый номер после nameserver 127, значит, на вашем компьютере есть ретранслятор DNS (это хорошо), и вы должны настроить этот ретранслятор DNS, а не изменять /etc/resolv.conf, В современных версиях Ubuntu по умолчанию есть ретранслятор DNS, это Dnsmasq, и он управляется D-Bus.
9

Иногда, когда вы находитесь за прокси-сервером, даже необходимо, чтобы вы генерировали 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>";
3

Принятое решение не работает для меня. Во-первых, только 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

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

0

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

0

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

0

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

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

0
Другие вопросы по тегам