| « コンテンツが存在しないページはインデックスさせない | Apache2でのPHPスクリプトのコンテントネゴシエーション » |
portsnapを使ってみた
今さらながら、portsnapを使ってみた。FreeBSD 6.0ではベースシステムに入っていて、標準で使えるが、なければ
sysutils/portsnap- ports-mgmt/portsnap
に用意されている。
私の場合、事前に、/usr/ports以下を
# rm -rf /usr/ports/*
と削除して、すっきりさせてから使用した。
使い方は、まず、
# portsnap fetch
を実行し、必要なファイルを取り寄せる。取り寄せられたファイルは、/var/db/portsnap以下に格納される。だいたい、容量は、
# du -h /var/db/portsnap/ | tail -1 52M /var/db/portsnap/
といったところ。
ダウンロードが終了し、必要なファイルが揃えば、
# portsnap extract
により、/usr/ports以下にportsツリーが展開され、インデックスが作成される(extractを実行するのは、通常、最初だけ)。
次回からは、同じように
# portsnap fetch
とすれば、差分だけを入手することができる。
更新された差分を実際に適用するには、
# portsnap update
と実行すれば、/usr/ports以下に反映され、INDEXが更新される。
cvsupは、独特のプロトコルを使用するためファイアーウォール内では使用できない場合があるが、こちらは、HTTPプロトコルが開放されていれば問題ない。また、portsnapの方は通信が暗号化されているので、cvsupよりもセキュアであるといえる。
もっとも、私にとって、一番の問題は/usr/ports/INDEX*の更新であった。cvsupを実行するたびに、
# portsdb -U
と実行し、INDEXを生成していたのだが、これにはCPUリソースも消費するし、時間もかかる。かといって、
# curl -s -I http://www.freebsd.org/ | grep -i date
Date: Mon, 12 Dec 2005 05:23:04 GMT
# curl -s -I http://www.freebsd.org/ports/INDEX{,-5,-6} | \
grep -i last-modified
Last-Modified: Mon, 12 Dec 2005 05:12:02 GMT
Last-Modified: Mon, 12 Dec 2005 02:04:10 GMT
Last-Modified: Mon, 12 Dec 2005 02:56:42 GMT
で見るように、サイトに置いてあるINDEXには時間差があって、不整合が起きる可能性があるし。
その点、portsnapによる更新は、驚く程スムーズで、却って、あっけないくらい(ただし、portsnapで入手できるINDEXファイルがどのように生成されているのかはよく知らない)。要するに通常、
# portsnap fetch update && portsdb -u
でOK。
その他、cronで使う際の注意点(複数台のマシンで同時にfetchされるのを避けるために時間差を設ける方法、ビルドの最中にupdateが行われてしまうリスクを抑える方法)等は、マニュアルportsnap(8)にちゃんと書いてあります。
参考
- FreeBSD Portsnap - 公式サイト
Trackback address for this post
Trackback URL (right click and copy shortcut/link location)
3 trackbacks
いつものように、
# portsnap fetch update && portsdb -u
とportsツリーを更新し、
# portversion -l '<'
と更新されたportsを確認しようとしたら、
cd: can't cd to /usr/ports/sysutils/portup...
サーバがまだ未着なので、暇ついでにラップトップ1台にFreeBSD6.2Rをインストールしました。
富士通 BIBLO NE3/500LR
HDDは元の12GBが壊れまして現在は余りものの8GB強という心許ない容量。
Penti
This post has 372 feedbacks awaiting moderation...