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.