まぁ、表題の通りなのだけれど、portsnapの中で使ってる
phttpgetがPROXYの古いキャッシュをみてしまうのが原因のようなのだけれど、
この辺で出てる通り、古くから直ってない問題なので、phttpgetをwgetに置き換えて安心安心。

と思っていたら、やっぱり失敗する。

具体的には、/var/db/portsnap/filelist の中身が古く、古いファイルを取りに行こうとして
HTTPの404を貰ってくるような動作をしている。
portsnapのスクリプトは古いファイルがあると思って処理を継続して、
いざ処理をする時にファイルが無くて失敗。

で、こういう時は /var/db/portsnap/ 配下を全削除、 しかる後、portsnap を実行。
ということをしていたのだけど、毎回やるのはうざったく、元々遅いアクセス帯域で
毎回60MB超のファイルを落とすのは非効率。

portsnap事態はシェルスクリプトなのでソースを見ると、どうもphttpgetしてる箇所と、
fetchコマンドでファイルを取ってくる場所があり、fetch が悪さしてる模様。

マニュアル検索で、fetchのオプションをチェックしてみるも、
PROXYのキャッシュを許可しない設定はできない模様。

なので、portsnapを書き換えてしまうことにした。

fetch ${QUIETFLAG} https://${SERVERNAME}/pub.ssl
2>${QUIETREDIR} || true

#fetch ${QUIETFLAG} https://${SERVERNAME}/pub.ssl
/usr/local/bin/wget ${QUIETFLAG} –no-cache https://${SERVERNAME}/pub.ssl
2>${QUIETREDIR} || true

こんな感じでfetchを使ってる箇所を置き換え。
${QUIETFLAG}の中身は -q でfetchとwgetで同じなので書き換える必要なし。
${QUIETREDIR} はどうせエラー出力なので気にしない。

一回試しで実行してみてとりあえず動くことを確認。
これで様子をみることにする。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です