apt-get update не може отримати файли, помилка "Тимчасове усунення помилки ..."


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.

Це те, що я бачу, коли намагаюся бігати sudo apt-get update. Я вчора робив оновлення на своєму екземплярі, і зараз це відчуваю.

Відповіді:


142

огляд

До вашого питання є дві частини:

  • виправлення тимчасових повідомлень про вирішення
  • виправлення проблем управління пакетом

Тимчасове рішення

Цілком імовірно, що це питання:

  • тимчасові через те, що Ваш Інтернет-провайдер не правильно перенаправляє Інтернет-іменування (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.


Чудово працює :)
Мадука Джаялат

Коли під час оновлення з'явиться одне ім’я, ви можете пропустити скрипт DNS і перейти безпосередньо до списку джерел.
SPRBRN

Все ще чудово працює з 15.04 та 15.10
lxx

1
Що робити, якщо це не працює?
Метт G

Ймовірно, проблема DNS докера не дозволяє успішному оновленню apt-get.
тире

10

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

Після зміни Source.list очистіть apt-get repo як

apt-get clean

Потім оновіть

apt-get update

Помилка піде


1
Це постійне рішення тимчасової проблеми DNS. Якщо ви забудете змінити його, програмне забезпечення із цього сховища більше не оновлюватиметься та не буде доступне для встановлення.
Чай Т. Рекс

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.

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

nameserverмає розміщуватися на машині імені хоста?
Альберт

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

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

Шахта:

nameserver 192.168.10.x

192.168.10.x is my gateway ip address


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

1
Не могли б ви уточнити, що варто зареєструвати /etc/resolv.conf?
papukaija

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 ви вирішили не виконувати оновлення (не підключалися до wifi / ethernet), які після того, як установка закінчена, і ви перезавантажите, можуть залишити вас на нескінченному екрані анімації входу в ubuntu (дивлячись ці рухомі точки). .. Ви побачите вище повідомлення про помилки, якщо тепер ви завантажуєтесь до Recovery і при видачі кореневих запитів apt-get updateнавіть після того, як ви ввімкнете мережу з Recovery, яка не дозволяє вам підключитися до wifi, якщо ви уникали Wi-Fi під час початкової установки.

Вирішення цього конкретного крайового випадку: підключіть кабель Ethernet, потім завантажтесь у Recovery і видайте apt-get updateабо іншим чином перевстановіть з нуля і запевняйте, що ви активуєте оновлення

Основна проблема - якщо ви не підключились до Wi-Fi під час встановлення, щоб уникнути оновлень пакета, вам не буде надано підказку для входу в wifi під час завантаження Recovery - це має бути виправлено ... також вище повідомлень про помилки слід просто сказати, що у вас немає Інтернету з'єднання

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.