ttt

getttyent

(FreeBSD) /usr/bin/fetchは、httpsなときproxyサーバを使わない?

2012-12-27 23:59:00 | デジタル・インターネット

FreeBSDのportsで使われる/usr/bin/fetchについて、自分用メモ。

ここ最近、/usr/ports/x11-fonts/liberation-fonts-ttf/ のportupgradeが失敗していて、なぜなんだろう?と思って調べて見た。

ソースファイルを、こんなコマンドで、ダウンロードしようとしているようだ。

/usr/bin/fetch -AFpr -S 1326750 https://fedorahosted.org/releases/l/i/liberation-fonts/liberation-fonts-ttf-1.07.0.tar.gz

で、ダウンロードできなかった。たまたまこの環境にはファイアウォールがあり、インターネットには直接つながっていなくて、かならずproxyサーバを使わなくてはならなくなっている。

なので、環境変数http_proxy、https_proxy、HTTP_PROXYなどは設定してある。

でも、/usr/bin/fetchはproxyサーバを使ってくれない。どうもURLがhttps://~になっているときは、proxyサーバを使ってくれないような雰囲気。

fetch、libfetchのマニュアルを見たけど、https用のproxyサーバの指定方法は書いてない。

ソースコードは、たぶんlibfetchのこのあたりか、と思ったけど、1~2分見た限りではよくわからなかった。httpsかどうかで挙動を変えているくらいはわかったけど。
http://svnweb.freebsd.org/base/release/9.1.0/lib/libfetch/http.c?view=log

・・・またfetchか。出来が悪すぎるコマンドだ。

ちなみにwgetだと、こんな感じでproxyサーバ経由でダウンロードできる。

env https_proxy=http://localhost:8080/ wget --no-check-certificate https://fedorahosted.org/releases/l/i/liberation-fonts/liberation-fonts-ttf-1.07.0.tar.gz

「--no-check-certificate」というオプションをつけているのは

エラー: fedorahosted.org の証明書(発行者: `/C=US/O=GeoTrust, Inc./CN=GeoTrust SSL CA')の検証に失敗しました:
  発行者の権限を検証できませんでした。
fedorahosted.org に安全の確認をしないで接続するには、`--no-check-certificate' を使ってください。

と言われてしまったから。どっかでwgetに認証局の証明書を教えてやればいいんだろうけど、めんどくさくてまだ調べてない。

■ 過去記事

20121227

写真は本文と関係ありません。