Сообщения об ошибках

Homebrew падает с “curl: (28)” на Mac

Homebrew скачивает файлы с помощью curl. Код выхода curl 28 — это тайм-аут. В документации curl сказано: «The specified time-out period was reached» (истекло заданное время ожидания).

Применимость: актуальный Homebrew во всех актуальных версиях macOS.Проверено: 29 октября 2026 г.

Симптомы

  • brew install останавливается с curl: (28), а затем сообщает, что время истекло.
  • Homebrew сообщает, что не смог скачать ресурс.
  • Загрузка не удаётся в медленной сети, через VPN или в корпоративной сети.

Вероятные причины

  • Медленное подключение или подключение с потерями. Большие bottle-пакеты не успевают скачаться по слабому Wi-Fi или через точку доступа.
  • Прокси, который curl не использует. Homebrew использует http_proxy, https_proxy и all_proxy.
  • Брандмауэр, который отбрасывает трафик. Если сеть отбрасывает подключения к серверу загрузки, возникает тайм-аут.
  • Неработающий путь IPv6. У сервера загрузки есть адрес IPv6, а IPv6 не работает.

Как проверить

  1. Пусть Homebrew проверит вашу систему.

    brew doctor
  2. Проверьте сервер загрузки через curl только по IPv4.

    curl -4 -I https://ghcr.io/v2/
  3. Покажите переменные прокси.

    env | grep -i proxy
  4. Измерьте подключение.

    networkQuality

Как исправить

  1. Пусть Homebrew делает больше попыток. По умолчанию — 3 повтора.

    export HOMEBREW_CURL_RETRIES=5
  2. Если в сети нужен прокси, задайте его в той же оболочке.

    export https_proxy=http://proxy.example.com:8080
  3. Если у вашей компании есть зеркало, задайте HOMEBREW_BOTTLE_DOMAIN и HOMEBREW_API_DOMAIN.

  4. По возможности выполните команду ещё раз в более быстрой сети.

С Kilobat

  1. Проверить, лимитная ли сеть, идёт ли трафик через VPN и не медленная ли она.

    kilobat conditions
  2. Диагностика подключения Kilobat проверяет хост уровень за уровнем: сеть, прокси, DNS, правила, IPv4, IPv6, TLS и сервер. Она называет уровень, на котором произошёл сбой.

    kilobat why https://ghcr.io/v2/
  3. Не давать Mac уснуть, пока идёт установка.

    kilobat awake -- brew upgrade
  4. Эти проверки Kilobat бесплатны. ИИ-агенты запускают их через MCP с помощью diagnose_connection и diagnose_network. См. Почему не подключается один сайт или API.

Вопросы

Что такое ошибка curl 28?

Это CURLE_OPERATION_TIMEDOUT. В man-странице curl код выхода 28 указан как тайм-аут операции.

Источники

Источники проверены 29 октября 2026 г. Man-страницы — те, что установлены вместе с macOS; откройте любую командой man <name> в Терминале.