FreeBSD QandA 443
Q. ports をインストールしようとして make を実行すると、
fetch: hogehoge-1.1.tar.gz: ......
>> Couldn't fetch it - please try to retrieve this
>> port manually into /usr/ports/distfiles/ and try agein.
となり、インストールできません。
A. Makefile の中に書かれているソースファイルを、ネットワークを使ってダウ
ンロードしようとしたが失敗した、というエラーメッセージです。この原因は
主に、ファイアウォール等が存在するか、ファイルが指定された URL に無い
事が考えられます。
A1. ファイアウォール
あなたのマシンがファイアウォール (firewall) の中にあるために、外部へ
のアクセスに特定の制限が設けられている場合があります。その制限はファ
イアウォールの構成と設定などにより異なりますが、fetch(1) の設定を変
えることで回避できるかもしれません。注意点として FreeBSD 4.1-RELEASE
から、fetch(1) や pkg_add(1) が fetch(3) ベースに書き直されています
ので、それまでの ftpio(3) ベースと仕様が異なる点があることです。
1. passive モードで FTP する時
# env FTP_PASSIVE_MODE=ON make
2. HTTP proxy サーバを利用する時
# env HTTP_PROXY="http://hostname[:port]" make (libfetch ベース)
# env HTTP_PROXY="hostname[:port]" make (libftpio ベース)
FTP_PROXY が未設定で HTTP_PROXY が設定されていると、`ftp://...' と
いう URL でも HTTP proxy サーバ経由でダウンロードします。
3. FTP proxy サーバを利用する時
# env FTP_PROXY="ftp://hostname[:port]" make (libfetch ベース)
# env FTP_PROXY="hostname[:port]" make (libftpio ベース)
hostname[:port] の部分は、例えば proxy.foo.bar.co.jp:8080 などと指定
します。FTP proxy と HTTP proxy を併用する場合は、両方の環境変数を設
定してあげます。もっと凝った設定が必要なら、詳細はそれぞれの man ペー
ジを読んでください。
上記のように実行してうまくいったら、~/.cshrc や ~/.profile に環境変
数の設定を行なうか、login.conf(5) に設定してやればシステム全体に効果
があります。
A2. ファイルが指定された URL に無い
あなたの使っている ports のバージョンが古いため、既に配布ファイルが
置いてないのかもしれません。例えば、ports は hogehoge-1.1.tar.gz を
ダウンロードしようとしたけれど、指定された場所には最新バージョンの
hogehoge-1.2.tar.gz しか置いてない、ということが考えられます。
そのときはどこかからファイルを取ってきて、/usr/ports/distfiles/ に
置き、改めて make を行なってください。ファイルを
LYCOS FTP Search サイト <URL:[BROKEN!] http://ftpsearch.lycos.com/>
などで探し、
# cd /usr/ports/distfiles; fetch ftp://foo.bar.com/pub/hogehoge-1.1.tar.gz
でダウンロードするのが簡単です。
間違い・追加情報を見付けた場合は、
修正案の投稿のしかた を読んだ上で、
QandA@jp.FreeBSD.org まで
お知らせください。