documents:freebsd:freebsd-017
FreeBSDのportsnapコマンドをプロキシ経由で使う方法
2013/08/13 FreeBSD9.1でのお話。
プロキシがあるとportsnapコマンド実行に支障が出ることがあります。
- プロキシに答えなきゃいけない認証情報。
- プロキシが通信内容を検査するためにかかってしまう通信の遅延。
とりあえず、環境変数で押さえ込むことができたのでそのメモ書きです。
設定する環境変数
最低限設定が必要なのは以下の3つになる。
- HTTP_PROXY
- HTTP_PROXY_AUTH
- HTTP_TIMEOUT
HTTP_PROXYはたぶんおなじみだと思う。HTTP_TIMEOUTについては今回の事があるまで知らなかった。
ソースを見ると、portsnapコマンドが呼び出す /usr/bin/fetch と /usr/libexec/phttpget はこの3つの環境変数を使えるようだ。
HTTP_PROXY
以下の形式で設定する。
# setenv HTTP_PROXY "http://proxy.ne.jp:8080"
PROXYに認証情報がいる場合はHTTP_PROXY_AUTHに設定する。理由は後述。
HTTP_PROXY_AUTH
以下の形式で設定する。
# setenv HTTP_PROXY_AUTH "basic:*:userid:password"
BASIC認証でレルムは全てに対応。 HTTP_PROXYに認証情報を入れて以下のような
# setenv HTTP_PROXY "http://userid:password@proxy.ne.jp:8080"
手抜きをしたくなるが、portsnapコマンドで使っている/usr/libexec/phttpgetがダサいつくりのせいで、認証情報入りのURIを正しくパースできない。 そのため、portsnapコマンドを使う場合はHTTP_PROXY_AUTHを使わないといけない。
HTTP_TIMEOUT
プロキシがダウンロードファイルを先にウイルス検査するような場合、大きいファイルのダウンロードほど通信に遅延が発生する。 fetchコマンドのソースによると遅延許容時間はデフォルト120秒の模様。
この値はHTTP_TIMEOUTで変更できる。 30分を設定するなら
# setenv HTTP_TIMEOUT 1800
となる。
documents/freebsd/freebsd-017.txt · 最終更新: 2024/11/01 16:25 by k896951