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]...
-
- > Connecting to cvsup2.jp.freebsd.org [203.216.196.85]...
-
- > Connecting to cvsup3.jp.freebsd.org [59.106.2.11]...
-
- > Connecting to cvsup4.jp.freebsd.org [133.1.240.15]...
-
- > Connecting to cvsup5.jp.freebsd.org [210.161.150.4]...
-
- > Connecting to cvsup6.jp.freebsd.org [59.106.2.11]...
で、-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