Ошибка «не удалось получить» возникает при запуске обновления apt-get. Как я могу это исправить?

42

Вопреки примечанию выше, я не нашел ответа на мою проблему.

Я прочитал почти дюжину вопросов об обновлении apt-get, большинство из которых было задано по адресу askubuntu.com, с ошибками «не удалось получить» и попытался найти ответы на них. К сожалению, никто не работал. Я только недавно установил Ubuntu 12.04 на свой ноутбук, загрузив его одновременно с Windows 7. Когда я попытался

sudo apt-get update

на терминале происходило следующее:

Err http://ph.archive.ubuntu.com precise InRelease
Err http://ph.archive.ubuntu.com precise-updates InRelease                     
Err http://ph.archive.ubuntu.com precise-backports InRelease                   
Err http://ph.archive.ubuntu.com precise Release.gpg                           
  Unable to connect to ph.archive.ubuntu.com:http: [IP: 91.189.92.177 80]
Err http://ph.archive.ubuntu.com precise-updates Release.gpg            
  Unable to connect to ph.archive.ubuntu.com:http: [IP: 91.189.92.177 80]
Err http://ph.archive.ubuntu.com precise-backports Release.gpg          
  Unable to connect to ph.archive.ubuntu.com:http: [IP: 91.189.92.177 80]
Err http://extras.ubuntu.com precise InRelease                          
Err http://extras.ubuntu.com precise Release.gpg                        
  Unable to connect to extras.ubuntu.com:http:
Err http://security.ubuntu.com precise-security InRelease
Err http://security.ubuntu.com precise-security Release.gpg
  Unable to connect to security.ubuntu.com:http: [IP: 91.189.92.190 80]
Reading package lists... Done
W: Failed to fetch http://ph.archive.ubuntu.com/ubuntu/dists/precise/InRelease  
W: Failed to fetch http://ph.archive.ubuntu.com/ubuntu/dists/precise-updates/InRelease  
W: Failed to fetch http://ph.archive.ubuntu.com/ubuntu/dists/precise-backports/InRelease  
W: Failed to fetch http://security.ubuntu.com/ubuntu/dists/precise-security/InRelease  
W: Failed to fetch http://extras.ubuntu.com/ubuntu/dists/precise/InRelease  
W: Failed to fetch http://ph.archive.ubuntu.com/ubuntu/dists/precise/Release.gpg      Unable to connect to ph.archive.ubuntu.com:http: [IP: 91.189.92.177 80]
W: Failed to fetch http://ph.archive.ubuntu.com/ubuntu/dists/precise-updates/Release.gpg  Unable to connect to ph.archive.ubuntu.com:http: [IP: 91.189.92.177 80]
W: Failed to fetch http://ph.archive.ubuntu.com/ubuntu/dists/precise-backports/Release.gpg  Unable to connect to ph.archive.ubuntu.com:http: [IP: 91.189.92.177 80]
W: Failed to fetch http://extras.ubuntu.com/ubuntu/dists/precise/Release.gpg  Unable to connect to extras.ubuntu.com:http:
W: Failed to fetch http://security.ubuntu.com/ubuntu/dists/precise-security/Release.gpg  Unable to connect to security.ubuntu.com:http: [IP: 91.189.92.190 80]
W: Some index files failed to download. They have been ignored, or old ones used instead.

Примечание :

Это произошло сразу после того, как я установил Ubuntu 12.04. Я очень новичок в мире Linux / Ubuntu и начинающий, когда дело доходит до такого рода вещей.

Список источников в настройках диспетчера обновлений (и центра программного обеспечения) был коротким. Он содержал только 2 строки с «Canonical», 2 строки с «Independent» и 2 другие строки. Я думаю, что список был коротким, потому что это была недавно установленная Ubuntu.

Подключение к Интернету выглядит нормально, и у моего друга, чей ноутбук только что был установлен с Ubuntu 12.04 примерно в то же время, что и у меня, похоже, нет проблем с его обновлением. У нас одинаковое соединение, поэтому я думаю, что проблемы с интернет-соединением не могли быть причиной ошибки.

Попытки решения :

Из здесь , я исследовал вокруг /etc/resolvconf/resolv.conf.dи добавил в /etc/resolvconf/resolv.conf.d/headследующем:

nameserver 8.8.8.8
nameserver 8.8.4.4

Ошибка все еще произошла.

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

Я также попытался отредактировать свой список источников, сняв отметки со строкой «независимо» (как это было предложено). Согласно здесь , я попытался удалить derb-srcстроки в списке источников. Тем не менее, безрезультатно.

Наконец, этот сайт предлагает запустить следующее:

echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf > /dev/null
or, for a permanent solution,
echo "nameserver 8.8.8.8" | sudo tee /etc/resolvconf/resolv.conf.d/base > /dev/null

К сожалению, у меня ничего не получалось. На всех форумах, где я бывал, nameserver 8.8.8.8чаще всего встречается ответ на этот вопрос . Обратите также внимание, что я действительно не понимал решения, что они имели в виду или как они делали. Я просто следовал за ними.

Это вывод для cat /etc/apt/sources.list:

# deb cdrom:[Ubuntu 12.04 LTS _Precise Pangolin_ - Release amd64 (20120425)]/ dists/precise/main/binary-i386/

# deb cdrom:[Ubuntu 12.04 LTS _Precise Pangolin_ - Release amd64 (20120425)]/ dists/precise/restricted/binary-i386/
# deb cdrom:[Ubuntu 12.04 LTS _Precise Pangolin_ - Release amd64 (20120425)]/ precise main restricted

# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://archive.ubuntu.com/ubuntu precise main restricted
deb-src http://archive.ubuntu.com/ubuntu precise main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://archive.ubuntu.com/ubuntu precise-updates main restricted
deb-src http://archive.ubuntu.com/ubuntu precise-updates main restricted

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://archive.ubuntu.com/ubuntu precise universe
deb-src http://archive.ubuntu.com/ubuntu precise universe
deb http://archive.ubuntu.com/ubuntu precise-updates universe
deb-src http://archive.ubuntu.com/ubuntu precise-updates universe

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu 
## team, and may not be under a free licence. Please satisfy yourself as to 
## your rights to use the software. Also, please note that software in 
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://archive.ubuntu.com/ubuntu precise multiverse
deb-src http://archive.ubuntu.com/ubuntu precise multiverse
deb http://archive.ubuntu.com/ubuntu precise-updates multiverse
deb-src http://archive.ubuntu.com/ubuntu precise-updates multiverse

## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb http://archive.ubuntu.com/ubuntu precise-backports main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu precise-backports main restricted universe multiverse

deb http://archive.ubuntu.com/ubuntu precise-security main restricted
deb-src http://archive.ubuntu.com/ubuntu precise-security main restricted
deb http://archive.ubuntu.com/ubuntu precise-security universe
deb-src http://archive.ubuntu.com/ubuntu precise-security universe
deb http://archive.ubuntu.com/ubuntu precise-security multiverse
deb-src http://archive.ubuntu.com/ubuntu precise-security multiverse

## Uncomment the following two lines to add software from Canonical's
## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
# deb http://archive.canonical.com/ubuntu precise partner
# deb-src http://archive.canonical.com/ubuntu precise partner

## This software is not part of Ubuntu, but is offered by third-party
## developers who want to ship their latest software.
deb http://extras.ubuntu.com/ubuntu precise main
deb-src http://extras.ubuntu.com/ubuntu precise main

И следующее для cat /etc/resolv.conf:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.0.1
search nip.upd.edu.ph

Было отмечено, что ответ здесь, но, к сожалению, это тоже не сработало. Я пытался выбрать разные серверы, но «выбрать сервер» никогда не был доступен. Поиск лучшего сервера дал результат «Нет подходящего сервера». Я думаю, что зеркальные серверы в порядке, и опять же, похоже, нет проблем с подключением к Интернету.

Используя ping -c3 archive.ubuntu.comи то и ping -c3 8.8.8.8 другое получилось 0% packet loss. Пинг для 8.8.8.8 иногда уступал, 33% packet lossно в основном 0%.

Печатать nslookup google.comурожайность

Server:     127.0.0.1
Address:    127.0.0.1#53

Выход ps aux | grep dns:

nobody    1761  0.0  0.0  33012  1284 ?        S    17:04   0:00 /usr/sbin/dnsmasq
 --no-resolv --keep-in-foreground --no-hosts --bind-interfaces --pid-file=/var
/run/sendsigs.omit.d/network-manager.dnsmasq.pid --listen-address=127.0.0.1 --conf-
file=/var/run/nm-dns-dnsmasq.conf --cache-size=0 --proxy-dnssec
joa       2197  0.0  0.0  13576   928 pts/0    S+   17:10   0:00 grep --color=auto dns
jowayow
источник
Хорошо, давайте начнем с нуля. Во-первых, вы можете скопировать точный вывод терминала при вводе sudo apt-get update? Кроме того, вы можете включить вывод cat /etc/apt/sources.listи cat /etc/resolv.conf? И вы подтверждаете, что можете нормально просматривать сайты в интернете?
Алаа Али
@Alaa В ответ на ваш запрос я отредактировал вопрос и опубликовал все, что вам нужно было знать. И да, я смог нормально просматривать сайты в интернете.
jowabels
Потеря пакета 0%? Таким образом, вы можете пропинговать и просматривать, но вы не можете разрешить в apt-get updates ... хм. Есть ли какая-то настройка DNS, которая работает только с apt-get? В любом случае, вы можете опубликовать первые две строки nslookup google.comи опубликовать вывод ps aux | grep dns? Кроме того, вы используете статический IP?
Алаа Али
@Alaa Я отредактировал вопрос и опубликовал результаты. Предполагается, что выходные данные для ps aux | grep dnsодной строки, но я отредактировал его, чтобы было легче просматривать. Первоначально я бы сказал, что я использую динамический IP, потому что я ничего не заплатил за него, но я использую интернет-подключения к университету, поэтому трудно понять, является ли IP, который я использую, статическим или динамическим.
jowabels
@Alaa Я только что проверил, что я использую динамический IP.
Джоавебелс

Ответы:

27

Я столкнулся с той же проблемой и решил, что самое простое решение - сбросить источники /etc/apt/sources.list. Для этого выполните следующие действия:

  1. Получите релиз своей версии Ubuntu, введите в консоли:

    lsb_release -r
    
  2. Перейдите на http://repogen.simplylinux.ch/, чтобы создать новыйsources.list

  3. Выберите свою страну и отпустите
  4. Отметьте первые 12 полей:

    Все Ubuntu Brances + Безопасность и обновления

  5. Создайте и скопируйте ваш новый список
  6. Сделайте резервную копию старого файла в sources.list.old

    mv /etc/apt/sources.list /etc/apt/sources.list.old
    
  7. Теперь вы можете открыть vi, чтобы сохранить новый список, выполнив:

    vi /etc/apt/sources.list
    (Paste and save using `:wq`)
    

    Или скопировав и вставив в свой терминал команду «curl» (включая уникальный URI для вашего обновленного списка источников), как это представлено в разделе «Список источников» на странице вывода repogen.

  8. G2G, повторите попытку apt-get update

RienNeVaPlus
источник
2
Я решил ответить на это, хотя проблема авторов была решена по-другому. Его вопрос является главным результатом множества проблем, связанных с поврежденным файлом source.list (наткнулся на него 3 раза), и он решил оставить здесь свое решение, поскольку это сэкономило бы мне много времени.
RienNeVaPlus
Я скачал виртуальную машину Ubuntu 12, и никаких репозиториев там, где они действительны (итальянские). Я сделал это и работал как шарм! Благодарность!
Фейда Кила
Перед тем как вставить в vim, вам нужно отредактировать режим вставки, нажав букву «я» после того, как вы его открыть
Sg
Это то, что сработало для меня.
Рик
В списке
релизов
25

Редактировать /etc/resolv.conf. В окне терминала запустить

sudo gedit /etc/resolv.conf

и добавьте строку

nameserver 8.8.8.8

и сохранить. Тогда делай

ping www.google.com

Если это удастся, выполните следующие команды

sudo apt-get --download-only --reinstall install resolvconf
sudo dpkg --purge --force-depends resolvconf
sudo apt-get install resolvconf

Если разрешить сейчас не удается, щелкните правой кнопкой мыши индикатор сети на панели в верхней части рабочего стола, нажмите Edit Connections, выберите подключение, нажмите кнопку Edit| IPv4 Settings, Измените метод с Automatic (DHCP)на Automatic (DHCP) addresses onlyи введите 8.8.8.8в Additional DNS serversполе. Нажмите Save.... Убедитесь, что /etc/resolv.confтеперь содержит строку nameserver 8.8.8.8и что вы все еще можете ping www.google.com.

jdthood
источник
5
@ Guntbert Умм. Вы говорите с автором пакета resolvconf. Я думаю, что он знает, о чем говорит. ;-)
Кевин Боуэн
@jdthood Раньше я мог пинговать 8.8.8.8(как указано в вопросе), но после добавления строки nameserver 8.8.8.8он не разрешился, и эта строка появиласьFrom nat1.up.edu.ph (10.16.1.2) icmp_seq=1 Destination Host Unreachable
jowabels
1
@maggotbrain, спасибо, что помог мне снова вытащить ногу изо рта :-)
Гюнтберт,
1
@ Guntbert Все хорошо, чувак. Сам был там. Если есть какие-либо проблемы с dns / resolconf, jdthood - это то, что нужно для их решения!
Кевин Боуэн
3
Когда я выполняю эти шаги, я получаю эту ошибку после того, как я Err http://us.archive.ubuntu.com/ubuntu/ wily/main resolvconf all 1.77ubuntu1 404 Not Found [IP: 91.189.91.23 80] E: Failed to fetch http://us.archive.ubuntu.com/ubuntu/pool/main/r/resolvconf/resolvconf_1.77ubuntu1_all.deb 404 Not Found [IP: 91.189.91.23 80]
выполню
7

sudo apt-get updateнаконец-то сработало! Я только что понял, что проблема была не в системе, а в том, как система подключается и получает данные из Интернета. Я только что настроил свои сетевые настройки и изменить прокси обнаружения до Manualи заполнил HTTP, HTTPS, FTPи Socks Hostзаготовки прокси , которые я использую. Когда я обновлялся снова, эта ошибка выводилась сначала:

E: Could not get lock /var/lib/dpkg/lock - open (11 Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/)

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

В любом случае, спасибо всем за вашу помощь! :)

оборота
источник
0

Сделай это

sudo bash -c 'echo "nameserver 127.0.0.1" >> /etc/resolv.conf'

Затем sudo apt-get updateпосмотрите, работает ли он.

Алаа али
источник
Нет, sudo apt-get updateвсе еще не работает. Нужно ли убирать строку nameserver 127.0.01или можно оставить ее там?
jowabels
Вы пытались сделать это после возврата от ответа JDThood? Так просто убедитесь , что вы можете свистеть 8.8.8.8, а затем добавить строку nameserver 127.0.0.1к /etc/resolv.conf, она должна быть единственной линией (после комментариев, конечно).
Алаа Али
Да, я сделал это после возврата, и не было никаких проблем с ping 8.8.8.8(Конечно, после возврата). В основном, nameserver 127.0.0.1была добавлена ​​только строка /etc/resolv.conf.
jowabels
Мне просто интересно, оригинальный файл / etc / resolv.conf` уже содержался nameserver 127.0.0.1до его добавления. Когда я последовал вашему ответу, отредактированный файл теперь содержал строки nameserver 127.0.0.1. Есть ли причина для этого?
jowabels
Команда в моем ответе добавила строку nameserver 127.0.0.1независимо от того, что уже было в файле. Исходный файл (после новой установки) должны , скорее всего , содержат эту линию уже, хотя вывод , что у вас в вашем вопросе не было этого. Но после того, как вы выполнили последние команды в ответе jdthood, я думаю, что файл был сброшен и строка nameserver 127.0.0.1была добавлена. Поэтому, когда вы последовали моему ответу, была добавлена ​​еще одна строка. В любом случае, если у вас есть две строки, безопасно удалить одну из них.
Алаа Али