Apt-Get займет много времени, чтобы обновить \ обновить

15

В моей рабочей сети любые команды apt-get (или aptitude) занимают очень много времени, похоже, что администраторы заблокировали какой-то порт для этого (по неизвестной причине). Например

sudo apt-get update

займет как 2 дня, и все, что я получаю - очень длинный список ответов, как

Get: 36 http://security.ubuntu.com precise-security/universe amd64 Packages [11.6 kB]
Get: 37 http://security.ubuntu.com precise-security/universe amd64 Packages [11.6 kB]
Get: 38 http://security.ubuntu.com precise-security/universe amd64 Packages [11.6 kB]
Get: 39 http://security.ubuntu.com precise-security/universe amd64 Packages [11.6 kB]
Get: 40 http://security.ubuntu.com precise-security/universe amd64 Packages [11.6 kB]

Та же ситуация, то я пытаюсь загрузить программное обеспечение

Get:1 http://archive.ubuntu.com/ubuntu/ precise/main dash i386 0.5.7-2ubuntu2 [85.8 kB]
Get:2 http://archive.ubuntu.com/ubuntu/ precise/main dash i386 0.5.7-2ubuntu2 [85.8 kB]
Get:3 http://archive.ubuntu.com/ubuntu/ precise/main dash i386 0.5.7-2ubuntu2 [85.8 kB]
Get:4 http://archive.ubuntu.com/ubuntu/ precise/main dash i386 0.5.7-2ubuntu2 [85.8 kB]
Get:5 http://archive.ubuntu.com/ubuntu/ precise/main dash i386 0.5.7-2ubuntu2 [85.8 kB]

Есть ли что-то, что я могу сделать, чтобы изменить порт для apt-get или что-то еще

ShockwaveNN
источник

Ответы:

11

Мои серверы Ubuntu всегда очень быстро apt-getобновлялись и обновлялись. Обычно линии на экране шли слишком быстро, чтобы их можно было увидеть. Затем они внезапно замедлились до ползания в одночасье.

Это был IPv6.

Я нашел следующее решение:

sudo nano /etc/gai.conf

Раскомментируйте следующую строку:

precedence ::ffff:0:0/96 100

Для меня это была строка 54 (убедитесь, что вы не раскомментируйте ту, которая заканчивается 10).

Сохранить и выйти.

sudo nano /etc/apt/apt.conf.d/99force-ipv4 # (this is to make a new file)

Добавьте следующую строку в новый файл:

Aquire::ForceIPv4 false;

Сохранить и выйти.

Райан
источник
3
Я не фанат этих ответов, так как нет никакого реального объяснения того, почему это решение.
Грей Адамс
1
@GrayAdams Если у вас есть объяснение, вы можете добавить его. У меня ни одного. Жаль, что я не сделал :( Я просто знал, что работает для меня, поэтому я опубликовал это для других, чтобы решить проблему, по крайней мере временно.
Райан
3
sudo nano /etc/gai.conf

добавить / раскомментировать эти строки:

reload yes
precedence ::ffff:0:0/96 100
precedence ::/0 10

когда я обновил с вышеупомянутыми строками, мой /etc/gai.confэто решило, и это использовало ipv4непосредственно вместо ipv6и установлено быстро.

Venkatesh
источник
ДА!!!!! Спасибо!!! Я понятия не имел, что здесь происходит. Пришлось ждать 10 минут для каждой apt-get установки.
Джако,
1

Я предлагаю вам начать с измерения типичной пропускной способности Интернета / сети с помощью одного из сайтов проверки производительности. Одной из возможностей является www.speedtest.net . Вы также можете использовать простой поиск Google для поиска других сайтов, которые вы могли бы использовать для проверки скорости вашего интернет-соединения.

Если тестирование показывает, что проблема не является ограничением вашего интернет-соединения, то следующим шагом может быть поиск ответов на этот вопрос:
как я могу использовать близкое мне зеркало или выбрать более быстрое зеркало ?

Я предлагаю вам начать с самого популярного ответа на этот вопрос . Это сводится к добавлению двух строк ниже в верхней части /etc/apt/sources.list. Это должно стимулировать процесс обновления автоматически выбирать зеркало для загрузки с лучшей производительностью.

deb mirror://mirrors.ubuntu.com/mirrors.txt precise main restricted universe multiverse
deb mirror://mirrors.ubuntu.com/mirrors.txt precise-updates main restricted universe multiverse
  • Примечание: приведенные выше строки предназначены для использования с Ubuntu 12.04 (Precise Pangolin) . Для более ранних выпусков замените preciseв двух строках выше соответствующее кодовое имя используемого выпуска.

    Lucid(10.04), Maverick(10.10), Natty(11.04), Oneiric(11.10)

Если этот подход не помогает или просто не является тем, что вы хотите сделать, то вы можете также рассмотреть возможность позволить Update Manager попытаться выбрать « самое быстрое » зеркало. Это описано более подробно в других ответах на вопрос, который я предоставил по ссылке выше.

иррациональный Джон
источник
У меня интернет работает нормально. Я пробовал много зеркал - но результат тот же, я ничего не могу скачать с сайтов
ShockwaveNN
@ShockwaveNN Если ваш Интернет работает нормально, у вас не должно возникнуть проблем с загрузкой с большинства зеркал. Нет ничего существенно отличного с точки зрения Интернета, который происходит, скажем, во время sudo apt-get updateиспользования firefoxбраузера. Вы пробовали загружаться с Live CD / USB и пытались sudo apt-get updateувидеть, есть ли разница? Если это так, это может указывать на что-то не так с вашей установкой Ubuntu. Если вы получите тот же результат, то у меня нет других идей на данный момент.
иррациональный Джон
0

Во-первых, два факта:
apt-get использует http (порт 80) по умолчанию в стандартных дистрибутивах Linux.

apt-getобычно загружает ~ 20 МБ данных для обновления списков. Если вы просто запустили apt-get updateи запустите его снова, он загрузит только ~ 100 КБ данных.
Так что, если вы можете просматривать всемирную сеть (то есть веб-сайты, использующие браузер) и используете стандартные дистрибутивы (не настроенные для использования любого другого порта), администратор ничего не заблокировал, что мешает вам выполнить эту команду.
Проблема может заключаться в том, что запросы от вашего компьютера к текущим серверам, используемым для обновлений apt-get, сталкиваются с некоторыми проблемами (то есть это может быть просто проблема с загрузкой).
Чтобы решить вашу проблему, мои предложения (как вы используете Ubuntu):

Открыть update-manager-> щелкнуть по настройкам в левом нижнем углу -> щелкнуть первую вкладку программного обеспечения Ubuntu -> щелкнуть по раскрывающемуся окну рядом с опцией Скачать из - -> изменить сервер в какое-то место, которое находится ближе к вашему местоположению, выбрав другой в список. Также проверьте протокол, используемый для обновлений. Это должен быть http для обычных пользователей. -> Теперь запустите sudo apt-get update или используйте менеджер обновлений для проверки обновлений. Теперь все должно работать хорошо для вас. Если что-то не работает даже после этого, прокомментируйте здесь.


Поскольку это не поможет вам, похоже, это проблема устаревших или частичных файлов, собранных при попытке обновить некоторое время назад.
Я бы предложил вам запустить эти команды в терминале:

sudo mv /var/cache/apt/archives/partial{,bakjune9}
sudo mv /var/lib/apt/lists{,bakjune9}

Эти команды переименуют каталоги, в которых хранятся файлы, при apt-getих загрузке при обновлении и обновлении. (Вы можете переименовать их обратно, если что-то пойдет не так. Таким образом, нет риска ухудшения ситуации по сравнению с настоящим моментом)
.

sudo apt-get update 

Это загрузит что-то как 20 МБ данных.
Если он работает успешно, ваша проблема решена.

Теперь вы сможете запустить sudo apt-get upgradeустановку обновлений.
Если это не так, прокомментируйте здесь назад.

drake01
источник
Это не помогло, я переключаю сервер на другую страну и проверяю, что протокол был «http», но у меня та же проблема. Кроме того, я могу просматривать Интернет (за исключением некоторых сайтов, таких как youtube.com), и могу зайти на archive.ubuntu.com/ubuntu в моем браузере, и он отлично работает
ShockwaveNN
Я добавил следующие шаги, которые, по моему мнению, должны вам помочь. Посмотри, работает ли это.
drake01
Второй вариант тоже не сработал. Я твердо думаю, что это какая-то проблема с соединением, есть ли способы диагностировать мое соединение для проблем?
ShockwaveNN
Вы добавили много источников программного обеспечения, кроме основных репозиториев? Если у вас есть несколько дюжин ppa, которые отключены или заброшены или очень медленные, это может замедлить обновление. Он также должен давать вам сообщение об ошибке каждый раз, когда он не может подключиться к одному.
Марк
0

Бегать

sudo apt-get clean

перед запуском

sudo apt-get update
P4uB0rd4
источник