csup(cvsup)でのports、srcのアップデートを早くするために


ここでも書いたが、portsのアップデートはcsupにしている。
で、csupを少しでも早くするために、refuseの設定の他、fastest_cvsupも使っている。

このコマンドはperlスクリプトで、カントリーコードを与えて実行すると、自分の環境で反応の速いcvsupサーバ上位3つを返してくれる。
/usr/ports/sysutils/fastest_cvsupからインストールできる。
実行例。

[flageo@xxx ]$ fastest_cvsup -c jp
>>  Querying servers in countries: jp
    • > Connecting to cvsup.jp.freebsd.org [210.224.172.75]...
- server replied: OK 17 0 SNAP_16_1h CVSup server ready - time taken: 56.67 ms
    • > Connecting to cvsup2.jp.freebsd.org [203.216.196.85]...
- server replied: OK 17 0 SNAP_16_1h CVSup server ready - time taken: 23.71 ms
    • > Connecting to cvsup3.jp.freebsd.org [59.106.2.11]...
- server replied: OK 17 0 SNAP_16_1h CVSup server ready - time taken: 24.14 ms
    • > Connecting to cvsup4.jp.freebsd.org [133.1.240.15]...
- server replied: OK 17 0 SNAP_16_1h CVSup server ready - time taken: 28.51 ms
    • > Connecting to cvsup5.jp.freebsd.org [210.161.150.4]...
- server replied: OK 17 0 SNAP_16_1h CVSup server ready - time taken: 46.06 ms
    • > Connecting to cvsup6.jp.freebsd.org [59.106.2.11]...
- server replied: OK 17 0 SNAP_16_1h CVSup server ready - time taken: 29.57 ms >> Speed Daemons: - 1st: cvsup2.jp.freebsd.org - 2nd: cvsup3.jp.freebsd.org - 3rd: cvsup4.jp.freebsd.org


で、-qオプションを与えてやると一番速いとこだけを返すようになるので、これをcsupに食わせてやる。

実行例

# csup -h `/usr/local/bin/fastest_cvsup -q -c jp` -g /etc/supfile-ports 
 -=(oooooo)=(cvsup6.jp.freebsd.org)=-                                           

Connected to 203.216.196.85
Updating collection ports-all/cvs
(略)

その時々でネットワークの状況だったり、サーバの混み具合が違い、結果として速いサーバも変わってくるので、csup実行時にチェックできるのがいいと思う。

なお、ここで書いたrefuseの設定は以下の通り。
こうしておくと、不要なファイルのダウンロードはしない。

$ cat /var/db/sup/refuse 
doc/bn_*
doc/da_*
doc/de_*
doc/el_*
doc/es_*
doc/fr_*
doc/hu_*
doc/id_*
doc/it_*
doc/mn_*
doc/nl_*
doc/no_*
doc/pl_*
doc/pt_*
doc/ro_*
doc/ru_*
doc/sr_*
doc/tr_*
doc/zh_*
ports/arabic
ports/chinese
ports/french
ports/german
ports/hebrew
ports/hungarian
ports/korean
ports/polish
ports/portuguese
ports/russian
ports/ukrainian
ports/vietnamese