«前の日記(2006-08-02(Wed)) 最新 次の日記(2006-08-17(Thu))» 編集

これ日記なん?


2006-08-12(Sat) [長年日記]

_ [FreeBSD]portsで FETCH_CMD=wgetでエラーになったら DISABLE_SIZE=yesもいる。

防火壁の内側からだと、fetchでftp://につなぎにいくとどうもとってこれなかったりするみたいなので、wgetしたれ!とするとエラーになるときが。しかもエラーメッセージがわけのわからんことに。

wget: unknown option --
Usage: wget [OPTION]... [URL]...

ぐぐってみても日本語でずばりと書いたのがなかったのでしばし考える... FETCH_CMD=wgetのかわりに FETCH_CMD=echo したらコマンドラインでるんじゃね?

bsd02# make FETCH_CMD=echo fetch

NOTE:
You can enable pthread support by defining WITH_PTHREADS variable,
but not recommended since this might break some ruby apps.

=> ruby-1.8.4.tar.gz doesn't seem to exist in  /usr/ports/distfiles/ruby.
=> Attempting to fetch from ftp://ftp.iij.ad.jp/pub/lang/ruby/1.8/.
-S 4312965 ftp://ftp.iij.ad.jp/pub/lang/ruby/1.8/ruby-1.8.4.tar.gz

なんだこの -S って。そりゃーwgetにはないわな。ちゅーわけで調査。

bsd02# pwd
/usr/ports/Mk
bsd02# grep -- '-S' *
bsd.port.mk:X_SERVER_PORT=              ${PORTSDIR}/x11-servers/XFree86-4-Server
bsd.port.mk:# Avoid -S for 4.7 and earlier since it causes fetch errors
bsd.port.mk:FETCH_BEFORE_ARGS+= $${CKSIZE:+-S $$CKSIZE}

bsd.port.mkにあるらしい。該当箇所。

.if exists(/usr/bin/fetch)
FETCH_CMD?=             /usr/bin/fetch -ARr
FETCH_REGET?=   1
.if ${OSVERSION} >= 480000 && !defined(DISABLE_SIZE)
# Avoid -S for 4.7 and earlier since it causes fetch errors
FETCH_BEFORE_ARGS+=     $${CKSIZE:+-S $$CKSIZE}
.endif
.else
FETCH_CMD?=             /usr/bin/ftp
FETCH_REGET?=   0
.endif

4.8以降で、DISABLE_SIZEが定義されてない場合は -S のあとにCKSIZEを付加するらしい。CKSIZEってfetchしてくるサイズチェックなんだろう。たぶん。じゃあこうすればいいの?

bsd02# rm /usr/ports/distfiles/ruby/ruby-1.8.4.tar.gz
bsd02# make FETCH_CMD=echo DISABLE_SIZE=yes fetch

NOTE:
You can enable pthread support by defining WITH_PTHREADS variable,
but not recommended since this might break some ruby apps.

=> ruby-1.8.4.tar.gz doesn't seem to exist in  /usr/ports/distfiles/ruby.
=> Attempting to fetch from ftp://ftp.iij.ad.jp/pub/lang/ruby/1.8/.
ftp://ftp.iij.ad.jp/pub/lang/ruby/1.8/ruby-1.8.4.tar.gz

なるほどこれで -S が消えるね。わーい。

その後1

/etc/make.confに定義してずっとwgetだぜ!と意気込んでみたものの、たまに失敗することもあるみたいで意味不明。fetchできないときにwget使うオプションとして考えておくか。とほほ。

その後2

本エントリを書くときにあらためてぐぐって一発目のメールを良く見ると

やったことがそのまま書いてある...最初にぱっと見てたはずなんだけど...orz