Как уменьшить время ожидания обновлений репозитория


32

При выполнении aptitude update/ apt-get updateили использовании диспетчера обновлений для обновления иногда я получаю ссылку на хранилище, которая занимает слишком много времени. Процент не заканчивается, и требуется немало времени, прежде чем он его игнорирует.

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

введите описание изображения здесь

Он пытается подключиться к archive.ubuntu.com, но, поскольку он занимает слишком много времени, он просто сидит там не менее 3-5 минут (не замерял время), а затем показывает, что игнорируется, и переходит к следующему. Я хочу изменить это на секунды вместо минут.


Попробуйте использовать другое зеркало. По умолчанию для каждой причины часто не самые быстрые. Например, стандартное зеркало для Китая всегда будет заставлять меня ждать 5-15 минут, чтобы обновить свои репозитории. Поменял его на более быстрый и теперь занимает около 30 секунд.
adempewolff

1
@adempewolff Сможете ли вы / захотите написать ответ, содержащий информацию в этом комментарии, а также показать (включая описание и изображение), как изменить зеркало в Источниках программного обеспечения?
Элия ​​Каган

Ответы:


38

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

Зеркала - это один из вариантов, как объяснил @adempewolff. Позвольте мне дать вам прямой ответ:

Установка времени ожидания соединения apt-get

Вы можете контролировать эти тайм-ауты с помощью следующих apt.confпараметров:

  Получить :: http :: Тайм-аут "10";
  Acquire :: ftp :: Timeout "10";
  

Обратите внимание, что это относится только к тайм-аутам соединения, а НЕ к тайм-аутам «времени окончания», т. Е. Если он подключается в течение 10 секунд, он продолжит загрузку пакета объемом 100 МБ, даже если он равен 1 КБ / с :)

Чтобы реализовать эти параметры, просто создайте файл conf в /etc/apt/apt.conf.d; Предположим, мы это называем 99timeout.

  • Нажмите Alt+F2, введитеgksudo gedit /etc/apt/apt.conf.d/99timeout
  • Введите / вставьте вышеуказанные строки, с вашим выбором времени ожидания в секундах
  • Сохранить и выйти.
  • Сейчас попробуй sudo apt-get update

И хак терминала-наркомана "найди лучший сервер"!

Расширено и перенесено как ответ на этот более подходящий вопрос


Дополнительные опции apt-get conf, которые вы можете попробовать настроить

  • Acquire::Queue-Mode: Режим очереди; Queue-Mode может быть одним из hostили accessкоторый определяет, как APT распараллеливает исходящие соединения. hostозначает, что будет открыто одно соединение для каждого целевого хоста, accessозначает, что будет открыто одно соединение для каждого типа URI.

  • Acquire::Retries: Количество повторных попыток. Если это ненулевое значение, APT будет повторять неудачные файлы указанное количество раз.

  • Acquire::http::Dl-Limit: принимает целочисленные значения в килобайтах, чтобы снизить скорость загрузки и не замедлять ваш просмотр / электронную почту / и т.д. при обновлении. Значение по умолчанию 0, которое деактивирует ограничение и пытается максимально использовать пропускную способность. Если он включен, он отключит функцию apt-getпараллельной загрузки.

  • Покопайтесь, man apt.confесли думаете, что-то еще может помочь


1
Есть ли способ реализовать время ожидания? Я знаю, что в моем случае (и я предполагаю, что в случае ОП он упоминает процент, принимаемый навсегда, подразумевая, что он уже подключен), обычно это не вопрос тайм-аута соединения, это просто проблема кропотливого замедления соединения ( как 1 кбит / с медленно).
adempewolff

Я хотел бы дать вам +2 за эту вторую часть; Мне было интересно, как тестировать самые быстрые серверы из терминала в течение долгого времени.
adempewolff

Спасибо @adempewolff, я действительно хочу написать / изменить что-то вроде netselect-aptUbuntu, так что все это в исполняемом файле. Что касается твоего последнего времени, я не думаю, что есть способ на уровне apt-conf. Но man apt.conf, и посмотрите «Acquire Group», в частности Queue-Mode и Retries, которые могут быть полезны.
иш

Я согласился, но за «Лучший взлом сервера» я дал вам +1 за этот и другой ответ. Это очень умно.
Луис Альварадо

5

Часто определенные репозитории загружаются мучительно медленно, это просто симптом использования медленного зеркала. Зеркала по умолчанию для многих регионов не самые быстрые (я знаю, что это так в Китае).

Сменить зеркало действительно легко с помощью графического интерфейса Software Sources, вы можете открыть это окно двумя способами:

  1. Откройте Ubuntu Software Centerи нажмите Software Sourcesв Editменю.

или

  1. Откройте терминал (или введите alt-F2) и запуститеsoftware-properties-gtk

Когда появится это окно, вы увидите выпадающее меню, в котором говорится, Download From:что вы выбираете зеркало. Выберите Otherопцию из этого меню.

softwaresources

В появившемся новом окне нажмите Select Best Serverкнопку, чтобы проверить и автоматически выбрать самый быстрый сервер для вашего местоположения.

выбрать лучший сервер

Надеюсь это поможет!

Смотрите также:


Хм, я не могу получить скриншот для захвата выпадающего меню в действии. Не знаю, хочу ли я задать вопрос об этом или
сообщить

Другая возможная ошибка, которую я мог бы подать, заключается в том, что эта software-properties-gtkпрограмма появлялась в Software Sources
наборе символов

Хороший ответ Адемпевольф. В качестве первого шага это будет так. Если это не работает, то принятый ответ будет решением. +1 Спасибо.
Луис Альварадо

2

apt-fast работает как apt-get , но загружает обновления репозитория и пакеты параллельно. Посмотрите этот урок, чтобы узнать, как его использовать.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.