fetch プロキシ認証 その1 (FreeBSD 8.1R、2010/09/18) [FreeBSD]
会社のPCにFreeBSD 8.1Rを入れ直したら、今まで通っていた社内プロキシ(認証あり)が通らなくなってしまいました。設定は、HTTP_PROXYとHTTP_PROXY_AUTHの環境変数を設定する方法で何ら変えていません。
しかしなぜかportsのソースコードfetch時に、httpだと「Proxy Authentication Required」と表示され、ftpだと普通にダウンロードできます(今思えば、ftpプロキシは無認証ってことないよね?)。さらにその環境変数を設定したたままシェルプロンプトで
とすると、普通にHTTP GETできてしまいます。なんでだろう。とりあえず考えられる理由は3つ。
・FreeBSD 8.1Rでfetchの仕様が変わった
・絶妙なタイミングで社内プロキシの仕様が変わった
・portsの/usr/ports/Mk/中で定義されているfetchの仕様が変わった
とりあえずシェルプロンプト上だと普通にHTTP GETできるので、ここは/usr/ports/Mk/の中が怪しいと見るべきでしょう。でまぁ、見つかったこんなオプション。
いろいろ試してみたら、どうも“-A”が悪さをしていた模様。これを取ってあげれば普通にHTTP GETできるようになりました。とりあえず、/etc/make.confに以下を書き込み。
しかしなぜかportsのソースコードfetch時に、httpだと「Proxy Authentication Required」と表示され、ftpだと普通にダウンロードできます(今思えば、ftpプロキシは無認証ってことないよね?)。さらにその環境変数を設定したたままシェルプロンプトで
atom# fetch 'http://www.yahoo.com/index.html'
とすると、普通にHTTP GETできてしまいます。なんでだろう。とりあえず考えられる理由は3つ。
・FreeBSD 8.1Rでfetchの仕様が変わった
・絶妙なタイミングで社内プロキシの仕様が変わった
・portsの/usr/ports/Mk/中で定義されているfetchの仕様が変わった
とりあえずシェルプロンプト上だと普通にHTTP GETできるので、ここは/usr/ports/Mk/の中が怪しいと見るべきでしょう。でまぁ、見つかったこんなオプション。
atom# lv /usr/ports/Mk/bsd.port.mk ... # For fetch: # # FETCH_BINARY - Path to ftp/http fetch command if not in $PATH. # Default: "/usr/bin/fetch" # FETCH_ARGS - Arguments to ftp/http fetch command. # Default: "-ApRr" # FETCH_CMD - ftp/http fetch command. # Default: ${FETCH_BINARY} ${FETCH_ARGS} # FETCH_BEFORE_ARGS # - Arguments to ${FETCH_CMD} before filename. # Default: none # FETCH_AFTER_ARGS # - Arguments to ${FETCH_CMD} following filename. # Default: none # FETCH_ENV - Environment to pass to ${FETCH_CMD}. # Default: none # FETCH_REGET - Times to retry fetching of files on checksum errors. # Default: 1
いろいろ試してみたら、どうも“-A”が悪さをしていた模様。これを取ってあげれば普通にHTTP GETできるようになりました。とりあえず、/etc/make.confに以下を書き込み。
FETCH_ARGS = "-pRr"