開発者向け
MacでHomebrewやnpmのダウンロードが失敗する
HomebrewはcurlとGitでダウンロードします。npmはそのレジストリからダウンロードします。それぞれのツールが独自のプロキシと証明書の設定を読み込みます。
症状
brew installが「curl: (28) … timed out」や「Failed to download resource」で止まります。npm installがETIMEDOUT、ECONNRESET、または証明書のエラーで止まります。- 会社のネットワークやVPNでだけダウンロードに失敗します。
- 遅い接続では、ダウンロードが始まってから止まります。
考えられる原因
- ツールが知らないプロキシ。Homebrewは
http_proxy、https_proxy、all_proxyを使います。npmは独自のproxyとhttps-proxyの設定か、同じ環境変数を使います。 - TLSインスペクション。会社のプロキシが独自の証明書で通信に署名しています。会社のプロキシ証明書でMacのターミナルツールが動かないを参照してください。
- npmのレジストリの誤り。古い
registryの設定が、アクセスできないサーバを指していることがあります。 - 遅い、または従量制の接続。Wi-Fiが弱い場合やテザリング中は、大きなダウンロードがタイムアウトすることがあります。
確認方法
Homebrewにシステムをチェックさせます。
brew doctorHomebrewとシステムの構成を表示します。
brew confignpmのレジストリとプロキシの設定を表示します。
npm config get registry npm config get proxy npm config get https-proxynpmのレジストリに応答を求めます。
npm pingcurlでダウンロード先ホストを直接テストします。
curl -v -o /dev/null https://formulae.brew.sh/api/formula.json
解決方法
プロキシ配下でHomebrewを使う場合は、同じシェルでプロキシ環境変数を設定します。
export https_proxy=http://proxy.example.com:8080プロキシ配下でnpmを使う場合は、npmのプロキシを設定します。
npm config set https-proxy http://proxy.example.com:8080npmがデフォルトを使うように、古いnpmのレジストリ設定を削除します。
npm config delete registry失敗したダウンロードをHomebrewが再試行する回数を増やします。
export HOMEBREW_CURL_RETRIES=5会社でミラーを使っている場合は、それを設定します。Homebrewはミラーに
HOMEBREW_BOTTLE_DOMAINとHOMEBREW_API_DOMAINを使います。証明書のエラーの場合は、会社のルート証明書を追加します。会社のプロキシ証明書でMacのターミナルツールが動かないを参照してください。
Kilobatを使う場合
大きなインストールの前に、ネットワークが従量制か、VPN経由か、遅いかを確認します。
kilobat conditionsダウンロード先ホストへの接続を止めている層を探します。そのプロセスのプロキシ環境変数を使うには
--appを付けます。kilobat why https://ghcr.io/v2/homebrew/core --app process:curlインストール中はMacをスリープさせないようにします。
kilobat awake -- brew upgradeこれらのコマンドは無料です。エージェントで大きなダウンロードの前にネットワークを確認するを参照してください。
よくある質問
Homebrewは「システム設定」のプロキシを使いますか?
Homebrewのドキュメントには、curl、Git、Subversion用のプロキシ環境変数が記載されています。シェルでhttps_proxyを設定してください。
npmはどれくらい待ちますか?
npmのドキュメントによると、fetch-timeoutのデフォルトは300000 ms(5分)、fetch-retriesは2回です。
出典
- Homebrewドキュメント:Manpage、環境変数
- npmドキュメント:config
- curl(1)、macOS 27.2に付属のmanページ
出典は2026年10月29日に確認しました。manページはmacOSに付属のものです。「ターミナル」でman <name>を実行すると開けます。