Mensajes de error

Homebrew falla con «curl: (28)» en el Mac

Homebrew descarga con curl. El código de salida 28 de curl es un tiempo de espera agotado. La documentación de curl dice: «The specified time-out period was reached» (se alcanzó el tiempo de espera indicado).

Se aplica a: Homebrew actual en todas las versiones actuales de macOS.Revisado: 29 de octubre de 2026

Síntomas

  • brew install se detiene con curl: (28) y luego un mensaje de que se agotó el tiempo.
  • Homebrew dice que no pudo descargar un recurso.
  • Las descargas fallan en una red lenta, con una VPN o en una red de empresa.

Causas probables

  • Una conexión lenta o con pérdidas. Los bottles grandes agotan el tiempo con un Wi-Fi débil o un punto de acceso.
  • Un proxy que curl no usa. Homebrew usa http_proxy, https_proxy y all_proxy.
  • Un firewall que descarta tráfico. Una red que descarta las conexiones al servidor de descargas provoca un tiempo de espera agotado.
  • Una ruta IPv6 rota. El servidor de descargas tiene una dirección IPv6 y el IPv6 no funciona.

Cómo comprobarlo

  1. Deja que Homebrew revise tu sistema.

    brew doctor
  2. Prueba el servidor de descargas con curl, solo por IPv4.

    curl -4 -I https://ghcr.io/v2/
  3. Muestra las variables de proxy.

    env | grep -i proxy
  4. Mide la conexión.

    networkQuality

Cómo solucionarlo

  1. Deja que Homebrew lo intente más veces. El valor predeterminado es 3 reintentos.

    export HOMEBREW_CURL_RETRIES=5
  2. Si la red necesita un proxy, configúralo en la misma shell.

    export https_proxy=http://proxy.example.com:8080
  3. Si tu empresa tiene una réplica, define HOMEBREW_BOTTLE_DOMAIN y HOMEBREW_API_DOMAIN.

  4. Si puedes, vuelve a ejecutar el comando en una red más rápida.

Con Kilobat

  1. Comprueba si la red tiene límite de datos, va por VPN o es lenta.

    kilobat conditions
  2. El diagnóstico de conexión de Kilobat prueba el host capa por capa: red, proxy, DNS, reglas, IPv4, IPv6, TLS y el servidor. Indica la capa que falló.

    kilobat why https://ghcr.io/v2/
  3. Mantén el Mac activo mientras se ejecuta la instalación.

    kilobat awake -- brew upgrade
  4. Estas comprobaciones de Kilobat son gratuitas. Los agentes de IA las ejecutan por MCP con diagnose_connection y diagnose_network. Consulta Averiguar por qué no conecta un sitio o una API.

Preguntas

¿Qué es el error 28 de curl?

Es CURLE_OPERATION_TIMEDOUT. La página man de curl describe el código de salida 28 como un tiempo de espera agotado de la operación.

Fuentes

Fuentes revisadas el 29 de octubre de 2026. Las páginas man son las que se instalan con macOS; abre una con man <name> en Terminal.