cvsup と cvs との区別もつかない人は出直してください。
FreeBSD, OpenBSD, NetBSD の cvsup mirror を立てるためのメモです。 NetBSD に関しては2002年12月以降の src 統合の状態を前提にしています。
この二つの設定は独立である。ここをハッキリさせておかないと混乱する。 上流からは *,v だけでなく、cvsupd の設定ファイルも取ってくるからである。
6GB 以上のファイルを引っ張ってくるのだから、 注意して上流の cvsup サーバを選択しなくてはならない。
国内公式ミラーが複数あるので、 CVSup サーバの負荷状況 と routing を参考にして選ぶといい。
国内公式ミラーの cvsup.jp.openbsd.org か cvsup.allbsd.org を使うといい。ネットワーク的に近い方を使おう。
国内公式ミラーの cvsup.jp.netbsd.org を使ってはいけない。 ほとんど常に高負荷になっており、不安定なこともしばしば。 cvsup.allbsd.orgがオススメ。
mirror するためのブツを取ってこなくてはいけない。 置き場は以下のようにしたが、ディスクに余裕があればどこだっていい。 使うときには symlink を張るからだ。
freebsd-supfile, netbsd-supfile, openbsd-supfile を使って cvsup で持ってこよう。 cvsupd mirror をやろうなんて人は単純な supfile なんぞ自前で書けると思うが念のため。
帯域にもよるが初回はかなり時間がかかる。仕掛けてから寝るといい。 「そんなもんすでに持ってるよ」という人は次へ行こう。
配布物への symlink を張る、下流へ配るために。 distrib.self は設定ファイルを配るために必要。
% mkdir /usr/local/etc/cvsup/prefixes
% cd /usr/local/etc/cvsup/prefixes
% sudo ln -s SKIP FreeBSD-gnats.current
% sudo ln -s SKIP FreeBSD-mail.current
% sudo ln -s SKIP FreeBSD-www.current
% sudo ln -s /export/cvsup/FreeBSD FreeBSD.cvs
% sudo ln -s /export/cvsup/NetBSD NetBSD.cvs
% sudo ln -s /export/cvsup/OpenBSD OpenBSD.cvs
% sudo ln -s .. distrib.self
アクセス制限設定。
名前はは変更可能。cvsupd -s の引数と揃っていればよい。
ありがたいことに設定ファイルを cvsup で配っているので取ってくるだけ。 FreeBSD と NetBSD は公式だが、 OpenBSD は cvsup.jp.openbsd.org が非公式にサービスしている。
サクっと distrib-freebsd-supfile, distrib-netbsd-supfile distrib-openbsd-supfile を使って cvsup で持ってこよう。 この supfile は freebsd-supfile などとはコメントアウトの仕方を変えているだけの代物なのだが。
下記のディレクトリに設定ファイルを置かれることになる。 中身を見れば prefixes で symlink 張りまくった理由もわかる。
sup を複数作っているので -c の後にに並べることに注意する。 動作確認後に rc.local か rc.d/ に仕込む。
if [ -d /usr/local/etc/cvsup/sup ]; then
echo -n ' cvsupd'
/usr/bin/su -f -m cvsup -c \
"/usr/local/sbin/cvsupd -e -C 4 -c sup:sup-netbsd:sup-openbsd -l @daemon -b /usr/local/etc/cvsup -s sup.client" \
> /dev/null 2>&1
fi
以降は特に変更しても痛い目をみないもの
もう適当に上流から引っ張ってくる cvsup を cron で回してください。 permission と owner に気をつけて。