会社のMacBookにSnow Leopardが入ったので、自宅マシンと同様に環境設定していく。
まずはMacPortsを入れようと思ったが、いきなり最初のrsyncができなくてはまる。
"macports proxy"で検索すると、プロキシ経由でMacPortsを使用するには — LyX HowToと言うページを発見したのでその通りにやってみる。
  1. /opt/local/etc/macports/sources.conf に以下の行を加え、rsync:// で始まる行をコメントアウトする。
    file:///opt/local/var/macports/sources/dports/ [default]
    
  2. svnがproxyを超えるようにする(参考サイトでは、環境変数http_proxyを設定していたが、私の環境のsvnはhttp_proxyをみてくれないようだ)ために、~/.subversion/serversのglobalセクションを以下のようにする。
    [global]
    http-proxy-exceptions = proxyを使わないホスト名 *.example.comとか
    http-proxy-host = proxyホスト名
    http-proxy-port = proxyポート番号
    
  3. dportsの取得
    $ cd /opt/local/var/macports/sources
    $ sudo svn co http://svn.macports.org/repository/macports/trunk/dports
    
  4. ソースツリーの更新
    $ sudo port -d sync
    
  5. port自身の更新
    $ sudo port -f install macports
    
んで、さっそくemacsを入れようと思って sudo port install emacs-app-devel すると、CVS でソースが取って来れない的なエラーが出て失敗する。
cvsのproxy越えについて調べたところ、cvs のバージョン1.12.7以降であればproxyが使えるようだ。(see info cvs)
そこで、/opt/local/var/macports/sources/dports/aqua/emacs-app-devel/Portfileの cvs.root の行を以下のように変更。
cvs.root        "\":pserver;proxy=proxyホスト名;proxyport=proxyポート番号:anonymous@cvs.savannah.gnu.org:/sources/emacs\""
portfileはtclで書かれているので、tclに途中の;を解釈されないように外側の""が必要で、その後cvsの呼び出し時にシェルに;が解釈されないように内側の\"\"が必要だ。
これで行けるかと思ったら、やっぱりエラーになる。ログをみると
:info:fetch cvs [export aborted]: proxy server proxyホスト名:proxyポート番号 does not support http tunnelling
と出ているので、うまくproxyが超えられていないらしい。

ここで挫折して、自宅マシンで port mdmg emacs-app-develで作成したdmgファイルからインストールして逃げた。

ここまでで、svnのproxy越えとcvsのproxy越え(成功してないけど)を取り上げたので、ついでにgitのproxy越えも取り上げておく。
proxy内のmac(に限らないけど)からgithubのgit@github.com:のURLにアクセスするには、sshがproxyを越えれば良い。
既にmacのsshの鍵はgithubに登録されているとして、~/.ssh/configに以下を追加する。
Host github.com
ProxyCommand $HOME/bin/connect -S proxyホスト %h %p
あ、ここで指定するproxyホストは http proxy じゃなくて socks proxyである必要がある。
これを動かすためには $HOME/bin/connectが必要なので、この辺から持ってきて、
$ mkdir ~/bin
$ gcc -o ~/bin/connect connect.c -lresolv
とかやって使えるようにしておく。(macportsにはproxytunnelと言うのが入っているので、こちらも使えるかもしれない)
これで、git clone git@github.com:・・・リポジトリ.git とかやれば成功するはず。

追記(2011/6/6)
git@github.com: みたいにsshを使う場合は上記で良いんだけど、git:とかhttps:を使う場合はsshの設定ではなくgitの設定を使う。ちょっと調べた感じだとcokescrewを使うケースが多いみたいだけど、うちのHTTP ProxyはCONNECTメソッドを許可していないし、socks proxyがある場合はちょうどssh用に入れた connect が使えるので、以下のようにする。
  1. 以下の内容でgit-proxyコマンドを作る
    #!/bin/sh
    $HOME/bin/connect -S proxyホスト $1 $2
    
  2. git config でgithub.comに対するproxyコマンドを設定する
    $ git config --global core.gitproxy '"git-proxy" for github.com'
    
github以外にもproxy経由でアクセスしたいホストがあれば、同じように for xxx のxxxの部分にホストを指定すれば追加できる。

カテゴリ

トラックバック(0)

このブログ記事を参照しているブログ一覧: proxyの内側からmacports

このブログ記事に対するトラックバックURL: https://www.wizard-limit.net/cgi-bin/mt/mt-tb.cgi/2679

コメントする

このブログ記事について

このページは、falseが2011年6月 1日 09:26に書いたブログ記事です。

ひとつ前のブログ記事は「macでFreeBSDのホームディレクトリをオートマウントする」です。

次のブログ記事は「macのEmacs.appにanything.elとauto-complete.elを入れる」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

広告

Powered by Movable Type 6.1.1