錯誤訊息
Mac 上的 Homebrew 失敗並顯示「curl: (28)」
Homebrew 用 curl 下載。curl 結束代碼 28 代表逾時。curl 文件的說明是:「The specified time-out period was reached.」(已達到指定的逾時時間)
症狀
brew install因curl: (28)而停止,接著顯示時間已到的訊息。- Homebrew 表示無法下載某個資源。
- 在慢速網路、VPN 或公司網路上下載失敗。
可能原因
- 連線緩慢或會掉封包。在微弱的 Wi-Fi 或熱點上,大型 bottle 會下載逾時。
- curl 沒有使用代理伺服器。Homebrew 使用
http_proxy、https_proxy和all_proxy。 - 防火牆丟棄流量。網路若丟棄連到下載主機的連線,就會造成逾時。
- IPv6 路徑故障。下載主機有 IPv6 位址,但 IPv6 無法使用。
如何檢查
讓 Homebrew 檢查你的系統。
brew doctor用 curl 測試下載主機,僅限 IPv4。
curl -4 -I https://ghcr.io/v2/顯示代理伺服器環境變數。
env | grep -i proxy測量連線。
networkQuality
如何修正
讓 Homebrew 多試幾次。預設重試 3 次。
export HOMEBREW_CURL_RETRIES=5如果網路需要代理伺服器,在同一個 shell 中設定。
export https_proxy=http://proxy.example.com:8080如果公司有鏡像站,設定
HOMEBREW_BOTTLE_DOMAIN和HOMEBREW_API_DOMAIN。可以的話,在較快的網路上再執行一次指令。
使用 Kilobat
檢查網路是否為計量網路、是否在 VPN 上,或是否很慢。
kilobat conditionsKilobat 的連線診斷會逐層測試主機:網路、代理伺服器、DNS、規則、IPv4、IPv6、TLS 和伺服器,並指出失敗的是哪一層。
kilobat why https://ghcr.io/v2/安裝期間讓 Mac 保持喚醒。
kilobat awake -- brew upgrade這些 Kilobat 檢查都是免費的。AI 代理程式可透過 MCP 以
diagnose_connection和diagnose_network執行。請參閱找出某個網站或 API 連不上的原因。
常見問題
curl 錯誤 28 是什麼?
它是 CURLE_OPERATION_TIMEDOUT。curl 的 man 手冊頁將結束代碼 28 列為操作逾時。
資料來源
- curl:libcurl error codes
- curl(1) 的 EXIT CODES,macOS 27.2 內建的 man 頁面
- Homebrew 文件:Manpage,環境變數
- brew(1),HOMEBREW_CURL_RETRIES,Homebrew 安裝的 man 手冊頁
資料來源檢查日期:2026年10月29日。man 頁面為 macOS 內建版本;在終端機中用 man <name> 開啟。