SOCKSプロキシ経由のHomebrew
カテゴリ: Mac OS X
Homebrew は git を使ってレポジトリの同期を取って、
curl を使ってソフトウェアのダウンロードを実行しているので、
両方を SOCKS プロキシ経由で実行させればよい。
SSH ダイナミックポートフォワーディングによるSOCKS
プラベートポート番号は 49152-65535 の範囲。
例えば localhost:65000 を SOCKS プロキシにしたいなら、
$ ssh [-Nf] -D 65000 username@remotehost
というふうに、ダイナミックポートフォワーディングを指定して
SSH セッションを張っておく。
ダイナミックポートフォワーディングが具体的に
どのような挙動をするものであるかはここでは述べない。
こういう時のために、セッションが切れた時に勝手に再接続してくれる
autossh なんてツールもある。
git と curl の SOCKS5 プロキシ
詳細は curl(1) と git-config(1) の man を参照。
結論だけ書けば、
$ ALL_PROXY=socks5://localhost:65000 brew command ...
でよい。
curl も git も、
ALL_PROXY 環境変数を設定することで全ての接続をプロキシすることができる。
プロキシを永続的に使うならシェルの profile や rc に書けばいいし、
あるいは export してからやってもいい。
ただ、プロキシが今回限りのものであれば、
コマンド実行時に環境変数として教えてあげるだけで十分なので、
上記の一行で事が済む。
$ ALL_PROXY=socks5://localhost:65000 brew update $ ALL_PROXY=socks5://localhost:65000 brew upgrade
あるいは
$ export ALL_PROXY=socks5://localhost:65000 $ brew update $ brew upgrade
お好きな方で。
2014/3/27 (木)