- Вопрос или проблема
- Ответ или решение
- F — Откройте для себя проблемы (Frustrations)
- O — Предложение решений (Opportunities)
- Проверка HTTP/1.1 Pipelining
- Оптимизация списка репозиториев
- Очистка и обновление
- R — Обеспечьте уверенность (Reassurance)
- Уточнение времени и даты
- Анализ проблемы с помощью strace
- E — Надейтесь на лучшее (Empathy)
- S — Вывод (Summary)
Вопрос или проблема
У меня есть виртуальная машина с установленной Ubuntu Server 9.10, настроенная с базовым веб-сервером. Каждый раз, когда я запускаю функцию apt, она приостанавливается примерно на 1 минуту на этапе ‘Ожидание заголовков…’. В конечном итоге процесс продолжается, как обычно, но это немного раздражает.
Все остальное на сервере, кажется, работает нормально. Есть идеи?
У некоторых репозиториев есть проблемы с http/1.1 конвейером.
Попробуйте добавить следующее в /etc/apt/apt.conf.d/piplining-off.conf:
Acquire::http::Pipeline-Depth "0";
tldr; Источник ПО -> Загрузить из -> Другое -> Выбрать лучший сервер
У меня была эта проблема с установкой ubuntu. Для отладки проблемы я редактировал
/etc/apt/apt.conf
и добавил Acquire::http::Timeout "3";
, что дает очень короткий таймаут и делает более очевидным, в чем проблема.
После этого apt-get update показал много 404 ошибок с http://bg.archive.ubuntu.com
, который был выбран моим установщиком ubuntu в качестве репозитория.
В разделе источников программного обеспечения я перешел на Загрузить из -> Другое -> Выбрать лучший сервер. Был выбран сервер в Болгарии, который, по сути, оказался тем же сервером, на который bg.archive.ubuntu.com, вероятно, перенаправляется или является псевдонимом. Но в любом случае, после выбора этого сервера непосредственно, apt-get update сработал идеально. Это говорит о том, что иногда может возникать какая-то проблема с DNS или псевдонимами серверных имен *.archive.ubuntu.com, которую можно просто решить, используя другой сервер или даже тот же сервер напрямую через его непсевдонимное имя.
Попробуйте закомментировать ваши multiverse и universe репозитории в вашем /etc/apt/sources.list
Затем выполните: apt-get clean all
и наконец: apt-get update
Посмотрите, не решит ли это проблему.
Убедитесь, что дата и время установлены правильно.
У меня была такая же проблема, и я устранил ее с помощью простого ntpdate
Также выясните, что происходит, запустив sudo strace apt-get update
В моем случае это было из-за подключения к рабочей VPN. Я не мог подключиться к deb.nodesource.com
, например. Отключился от VPN – без проблем. Подключился вновь – проблема. Это не будет источником проблемы для всех, но если вы используете VPN и у вас есть эта проблема, попробуйте отключиться и затем попробовать снова.
Попробуйте сначала сменить интернет-провайдера, если возможно. В 80% случаев это вызвано настройками прокси на стороне провайдера или конфигурациями сервера прокси. После нескольких часов поиска и внесения нескольких изменений в /etc/apt/apt.conf я просто сменил интернет-провайдера и в течение 20 секунд получил обновления и установил nginx.
Я столкнулся с этим поверхностным симптомом, когда пытался обновить старую запущенную установку Debian с Debian 8 (последняя) до 9 (последняя). У меня sources.list был настроен на archive.debian.org, я переключился с “jessie” на “stretch”, попробовал apt-get update и застрял на третьей строке с 23% [Ожидание заголовков]
.
Почесал голову немного и попробовал
tcpdump -n -v -i eth0 tcp and port 80
Что выдало
HTTP/1.1 416 Range Not Satisfiable
= HTTP-клиент запрашивает то, чего нет, за пределами файла или что-то подобное. Хм. HTTP-клиент здесь – apt. Что делать… как насчет
apt-get install apt
apt-get update
…успех, продолжаю работать дальше.
.
Ответ или решение
Проблема с застреванием команды apt-get
на этапе "Waiting for headers" на Ubuntu Server 9.10 может быть вызвана различными факторами, такими как особенности сетевых соединений, настройки репозиториев и конфигурации HTTP. В этой статье мы подробно рассмотрим возможные решения и шаги, которые помогут устранить данную задержку.
F — Откройте для себя проблемы (Frustrations)
Если ваша виртуальная машина на старой версии Ubuntu Server 9.10 останавливается на этапе "Waiting for headers" при использовании apt-get
, это может быть неприятно и вызывает вопрос о стабильности работы системы. Но не волнуйтесь, существует несколько решений, которые могут помочь устранить эту проблему.
O — Предложение решений (Opportunities)
Проверка HTTP/1.1 Pipelining
Некоторые репозитории могут некорректно обрабатывать HTTP/1.1 pipelining. Вы можете отключить эту функцию, добавив следующее в файл /etc/apt/apt.conf.d/piplining-off.conf
:
Acquire::http::Pipeline-Depth "0";
Оптимизация списка репозиториев
Другой шаг — это оптимизация списка репозиториев. Выполните следующие действия:
-
Редактируйте файл конфигурации
/etc/apt/apt.conf
и добавьте строку:Acquire::http::Timeout "3";
Это позволит быстрее обнаружить, какие ресурсы недоступны.
-
Перейдите в "Software Sources" → "Download From" → "Other" → "Choose Best Server". Это может выбрать наилучший сервер для загрузки пакетов, обойдя возможные проблемы с DNS и серверными алиасами.
Очистка и обновление
Можно попробовать временно отключить репозитории multiverse
и universe
в /etc/apt/sources.list
, затем выполнить:
sudo apt-get clean all
sudo apt-get update
R — Обеспечьте уверенность (Reassurance)
Уточнение времени и даты
Убедитесь, что время и дата на сервере установлены корректно. Используйте команду ntpdate
для синхронизации с NTP-сервером.
Анализ проблемы с помощью strace
Если проблема не решается, приступите к отслеживанию вызовов системных вызовов с помощью sudo strace apt-get update
. Это может дать более детальное представление о шаге, на котором происходит задержка.
E — Надейтесь на лучшее (Empathy)
У некоторых пользователей задержки могли быть вызваны сетевыми настройками, например, при использовании VPN. Отключите VPN и попробуйте снова выполнить обновление.
S — Вывод (Summary)
Проблема с застреванием apt-get
на этапе "Waiting for headers" может возникать по различным причинам: от сетевых настроек до неправильно настроенных репозиториев. Благодаря рассмотренным выше решениям, вы сможете устранить задержки и обеспечить бесперебойную работу вашего Ubuntu Server. Если проблема не решается перечисленными способами, стоит рассмотреть возможность обновления до более новой версии ОС, так как Ubuntu 9.10 достаточно старая и может испытывать проблемы с совместимостью.