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 (木)

コメント