portsを更新したりmake worldをするために使うcvsupはFreeBSDでは重要なツールです。
cvsupの設定はsupfileに記述しますが、より快適にcvsupを使うために以下のことに気をつけて設定を見直してみましょう。
portsなどを更新するときに接続するCVSサーバーは世界中にたくさん存在しますが、cvsupを使って接続する時はその中から一つを選ばなければなりません。
そのため、なるべく回線的に近くて速度の速いサーバーに接続したいものですが、実際に調べるのは手間がかかるし面倒だ。という現実が存在します。
しかし便利な世の中とはよく言ったもので、指標になる情報がいくつか存在します。
例えばcvsupサーバーの負荷状況を公開しているサイト(http://home.jp.freebsd.org/stats/mrtg/cvsup/)です。
ここを見れば一目瞭然で負荷の低いサーバーや、速度が出ることが期待できそうな時間帯を調べることが可能です。
回線的に一番近いcvsupサーバーを調べるアプリケーションも存在します。
fastest_cvsupという名前で、portsやportinstallによってインストールすることが可能です。
# cd /usr/ports/sysutils/fastest_cvsup
# make install clean
あるいは
# portinstall -v fastest_cvsup
としてインストールしてください。
インストールが完了したら、早速使ってみましょう。
fastest_cvsupは登録されている全てのcvsupサーバーを検索することが可能です。
検索するサーバーの国を指定できるので、例えば日本国内のcvsupサーバーのみを調べると言ったことも可能です。
世界中全てのcvsupサーバーで一番近いサーバーを調べるには、
# fastest_cvsup -c all
と実行します。
時間が多くかかりますが、最後にランキングが表示されますので一番近いサーバーをsupfileに指定すれば良いでしょう。
また、日本国内のcvsupサーバーのみを調べるには、
# fastest_cvsup -c jp
と実行します。
私の環境では cvsup3.jp.freebsd.orgが一番近いようですので、これをports-supfileに反映します。
# vi /etc/ports-supfile
*default host=cvsup3.jp.FreeBSD.org
cvsupはサーバーと同期する際にリストファイルと呼ばれるファイルを参照し、ローカルのファイルの状況をチェックしています。
これは頻繁にディスクアクセスを行うため、このチェックによってcvsupの速度が非常に遅くなります。
cvsupにはこのようなチェックを省く設定(-sオプション)があり、チェックを省くことによって素早くcvsupを実行でき、サーバー側の負荷も減らすことが可能です。
# cvsup -g -s /etc/ports-supfile
ただし-sを指定するとリストファイルが正確であると仮定し同期を始めるため、ローカルのファイルを手動で変更していた場合には正常に同期できません。このため手動でローカルのファイルを変更している場合は-sオプションを付けずに実行してください。
またcvsupはデフォルトではファイルを圧縮して同期しています。
ただし回線が速い場合はcvsupサーバーに負荷を与えるだけで、あまり意味のないものとなっています。
圧縮を解除するには、supfileにある
*default compress
の記述を外してください。