コード・依存を頻繁にプルする開発者、CI 利用者、跨国チーム向けに、リモート Mac 上で Git/Homebrew/npm がタイムアウト・切断しやすい理由と、実行可能なパラメータ・設定手順・ミラー選定比較を FAQ とチェックリストでまとめます。

なぜリモート Mac で Git/Homebrew/npm はタイムアウト・切断しやすいか

リモート Mac は物理的にリージョンが離れているため RTT(往復遅延)が大きくなり、長時間の clone や install で TCP セッションが切れやすくなります。また HTTP のデフォルトタイムアウトが短く、大容量転送の途中で切断が発生しやすいです。Git の HTTP 転送は postBuffer が小さいと分割送信になり、Homebrew/npm はリトライ回数が少ないと一度のネットワーク揺らぎで失敗します。

Git のタイムアウトと断線リトライの実行可能パラメータ

以下をグローバルまたはリポジトリ単位で設定してください。

実行可能コマンド例
  • git config --global http.postBuffer 524288000(約 500MB。大きな clone で切断を防ぎます)
  • git config --global http.lowSpeedLimit 1000 --global http.lowSpeedTime 60(低速度で 60 秒続いたら中止)
  • clone 時に git clone --config http.postBuffer=524288000 <url> で一時的に指定も可能です。
  • SSH 利用時は ~/.ssh/configControlMaster autoControlPathControlPersist 600 を設定し、同一ホストへの再接続を維持すると安定します。

Homebrew と npm のリトライ・タイムアウト設定手順

Homebrew: 環境変数 HOMEBREW_CURL_RETRIES=5 でリトライ回数を増やします。キャッシュを有効にし、可能なら HOMEBREW_API_DOMAIN や mirror を近いリージョンに設定してください。

npm: プロジェクトまたはホームの .npmrcfetch-retries=5fetch-retry-mintimeout=20000fetch-timeout=120000 を追加します。CI では npm ci とキャッシュディレクトリの再利用で再取得を減らせます。

  • 1

    echo "fetch-retries=5" >> .npmrcecho "fetch-timeout=120000" >> .npmrc でリトライとタイムアウトを設定。

  • 2

    Homebrew は export HOMEBREW_CURL_RETRIES=5.zshrc 等に追記。

自前ミラー vs プロキシ vs ミラーサイト選定比較表

方式速度・安定性運用コストおすすめシーン
自前ミラー高(自環境に最適化可)高(構築・同期必要)CI 多頻度・チーム規模大
プロキシ中〜高(設定次第)Git/HTTP を一括で経路変更したい場合
公設ミラーサイト中(リージョン・鮮度に依存)不要個人・小規模、まずは手軽に試したい場合

まとめとおすすめ

リモート Mac で安定してプルするには、(1) Git の http.postBuffer・timeout・ControlPersist、(2) Homebrew の HOMEBREW_CURL_RETRIES とキャッシュ、(3) npm の fetch-retries・fetch-timeout を設定し、必要に応じて自前ミラー・プロキシ・ミラーサイトのいずれかを選定するのがおすすめです。

安定したリモート Mac 環境なら、プル失敗や CI の再実行を減らせます。MacPull ではクラウド Mac をレンタルでき、料金購入はログイン不要で確認できます。プル加速の詳細はブログ一覧跨境プル加速キャッシュ戦略の記事もご参照ください。リモート Mac での開発・CI を安定させたい方は、ぜひ当社のリモート Mac サービスをご検討ください。

リモート Mac で安定プル

プル安定性を重視するならリモート Mac を選ぶ

Git/Homebrew/npm の設定と合わせて、安定したクラウド Mac で CI と開発を快適に。料金・購入はログイン不要で確認できます。

24時間以内デリバリー スペック変更可 いつでも解約可