apt - застряг у 0 [Підключення до us.archive.ubuntu.com]


164

Коли я роблю оновлення, він застрягає тут:

user@plato:~# sudo apt-get upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
  bind9-host coreutils cpio curl dnsutils libbind9-90 libc-bin libc-dev-bin
  libc6 libc6-dev libcgmanager0 libcurl3 libcurl3-gnutls libdns100
  libdrm-intel1 libdrm-nouveau2 libdrm-radeon1 libdrm2 libisc95 libisccc90
  libisccfg90 libjasper1 liblwres90 libplymouth2 libsepol1 libssl-dev
  libssl-doc libssl1.0.0 linux-libc-dev mime-support multiarch-support ntp
  ntpdate openssl plymouth plymouth-theme-ubuntu-text python3-distupgrade
  ubuntu-release-upgrader-core unzip
39 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 16.0 MB of archives.
After this operation, 12.3 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
0% [Connecting to us.archive.ubuntu.com (2001:67c:1562::15)] ░

Коли я роблю оновлення, воно застрягає тут:

user@plato:~# apt-get update
0% [Connecting to us.archive.ubuntu.com (2001:67c:1562::14)] [Connecting to sec░

Я можу пінг us.archive.ubuntu.com просто:

user@plato:~# ping us.archive.ubuntu.com
PING us.archive.ubuntu.com (91.189.91.23) 56(84) bytes of data.
64 bytes from economy.canonical.com (91.189.91.23): icmp_seq=1 ttl=54 time=81.5 ms
64 bytes from economy.canonical.com (91.189.91.23): icmp_seq=2 ttl=54 time=81.5 ms
64 bytes from economy.canonical.com (91.189.91.23): icmp_seq=3 ttl=54 time=81.5 ms
64 bytes from economy.canonical.com (91.189.91.23): icmp_seq=4 ttl=54 time=81.4 ms
^C
--- us.archive.ubuntu.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 81.425/81.528/81.582/0.355 ms

Що я можу зробити, щоб це виправити?


Що я спробував поки що.

Я спробував наступні вказівки в цьому блозі: http://nickescobedo.com/719/ubuntu-apt-get-hangs-at-0

Щоб змусити apt-get використовувати виключно IPv4

  • Створіть файл у /etc/apt/apt.conf.d/99force-ipv4
  • Додайте цей рядок до новоствореного файлу Acquire::ForceIPv4 false;
  • Тепер Apt-get використовуватиме виключно IPv4

Жодна з відповідей не працювала для мене: моя проблема полягала в тому, що мій брандмауер хоста Windows блокував мого гостя Ubuntu, який працює у Virtualbox.
drodsou

Жодна з цих відповідей не працювала для мене. Я перезапустив свою віртуальну машину і вона працює зараз.
кілоджоулі

Відповіді:


309

Я придумав, як знову змусити вдатися до роботи.

Редагувати gai.conf:

sudo vim /etc/gai.conf

змінити рядок ~ 54, щоб відміняти таке:

precedence ::ffff:0:0/96  100

написати та вийти:

:wq

ОБЕРЕЖНО

Знайдіть рядок 50, який виглядає майже однаково:

precedence ::ffff:0:0/96  10

Це неправильна лінія. Перейдіть ~ 4 рядки вниз, і ви знайдете правильний рядок для коментаря, оскільки він закінчується 100замість10


1
Дякуємо, що опублікували ваше рішення. У мене виникло те саме питання, і це виправлено.
брадим

55
Як на Землі ви це зрозуміли? Це раптом почало траплятися зі мною на одному з моїх серверів, і це виправлено.
Брайан Ніл

4
Що тут відбувається? Потрібно розробити, чому це виправлення працює?
чотири43

53
Проблема: Інтернет-провайдери починають налаштовувати внутрішню мережу IPv6, готуючись до зрештою підключення до Інтернету IPv6. Як результат, сервери в цій мережі тепер намагаються підключитися до * .ubuntu.com через його IPv6 адресу за замовчуванням під час запуску apt-get. Рішення: коментарі precedence ::ffff:0:0/96 100дозволяють запитам віддати перевагу IPv4
Arian Faurtosh

8
ФІКСОВАНО! Це, безумовно, правильне виправлення цього питання. Але для тих, хто стикається з цим виправленням, переконайтесь, що НЕ робіть того, що я зробив. Я precedence ::ffff:0:0/96 10прокоментував це, і мені довелося повернутися до файлу та прокоментувати цей рядок ще раз, а потім відмітити правильний рядок, який єprecedence ::ffff:0:0/96 100
dtigue

14

Краще відключити IPV6 перед оновленням та оновленням.

  1. Відкритий термінал

  2. Введіть sudo -H gedit /etc/sysctl.confта відкрийте файл конфігурації та додайте наступні рядки наприкінці

    net.ipv6.conf.all.disable_ipv6 = 1
    net.ipv6.conf.default.disable_ipv6 = 1 
    net.ipv6.conf.lo.disable_ipv6 = 1 
    
  3. Після цього біжи

    cat /proc/sys/net/ipv6/conf/all/disable_ipv6 
    

    Якщо він повідомляє "1", це означає, що ви вимкнули IPV6.

    Якщо він повідомляє "0", будь ласка, виконайте крок 4 та крок 5.

  4. Введіть команду sudo sysctl -p. Ви побачите це в терміналі.

    net.ipv6.conf.all.disable_ipv6 = 1 
    net.ipv6.conf.default.disable_ipv6 = 1 
    net.ipv6.conf.lo.disable_ipv6 = 1 
    
  5. Повторіть вище "Крок 3", і тепер він буде повідомляти 1.


це спрацювало. Я не розумів, чому. Можете пояснити, будь ласка.
AAI

6

Жоден з виправлень IPv6 не працював для мене. Можливо, у мене той самий симптом із іншою причиною. Моє вирішення полягало у переході до іншого архіву шляхом пошуку та заміни у source.list, наприклад:

sudo vim /etc/apt/sources.list

І потім:

:%s/us\.archive/de\.archive/g
:wq

Це принаймні дозволяє мені повернутися до роботи, поки я не з’ясую справжню проблему.


1

Що для мене працювало - переключити налаштування мережі VirtualBox для мого гостя Ubuntu на "NAT" з "Брідженого адаптера".


Так, це обов'язково спрацює. Але чому б він не працював над "Мостовим адаптером". Я вмію робити все за допомогою мостового адаптера, крім apt-get update.
суфрк
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.