/usr/src 以下を最新のものにするために、CVSup を使います。 CVS とは Current Version System の略です。 デフォルトではインストールされていませんので、 インストールから始めましょう。
なお、詳細は cvsup のオンラインマニュアルや、 ハンドブックの A.6. CVSup を使う をご覧下さい。
CVSup のインストールには、port を使うのが便利です。 /usr/ports/net/cvsup にありますので、cd して make install します。GUI がいらないならば、/usr/ports/net/cvsup-without-gui を使います。
# cd /usr/ports/net/cvsup
# make install
このインストールには長い時間がかかりますが、 CVSup に必要な他のアプリケーションがインストールされるので便利です。
CVSup のバージョンが SNAP_16_1e より新しくないと、 1000000000 秒バグのために正常に動きません。 こんなときは、最新の CVSup をインストールしましょう。 CVSup のバージョンは -v オプションで見られます。
% cvsup -v
まず、 http://people.freebsd.org/~jdp/s1g/ に行って SNAP_16_1e のソースをとってきます。 とってきたソース(tar.gz形式)を適当なところに展開し、 cvsup-snap-16.1e に cd して make install すればOKです。
% tar zxvf cvsup-snap-16.1e.tar.gz
% cd cvsup-snap-16.1e
% su
Password:
# make install
CVSup の設定は、supfile というファイルで行います。 以下に一例を示します。
*default tag=RELENG_4_4_0_RELEASE
*default host=cvsup4.jp.FreeBSD.org
*default prefix=/usr
*default base=/usr/local/etc/cvsup
*default release cvs delete use-rel-suffix compress
src-all
ports-all
/usr/share/examples/cvsup/ に supfile のサンプルがありますから、 他の指定方法の参考にして下さい。
- 1行目:どのバージョンのソースをとってくるか
上の例では 4.4-RELEASE のソースを取る設定になっています。
-current や -stable のソースを取って来る場合は、 それぞれ次のようにします。
-current:
*default tag=.
-stable:
*default tag=RELENG_4
- 2行目:どこからとってくるか
ネットワーク的に近い cvsup サーバを指定します。- 3行目:とってきたソースをどこに置くか 普通はソースは /usr/src にありますから、/usr と指定します。
- 4行目:更新情報をどこに置くか
- 5行目:おまじない
- 6行目:
- 7行目:/usr/src 以下をすべて更新
- 8行目:/usr/ports 以下をすべて更新
いよいよ、CVSup でソースを取得します。
# cvsup supfile
ソースファイルを一つ一つチェックして、 足したり消したりしながら拾って来ますので かなりの時間がかかります。 いきなりソースツリーを変更するのが恐い場合は、 /usr/src のバックアップをとっておくなり、 supfile の prefix を違う場所に拾って来て感じを掴むなり してください。
3.4-RELEASE から 4.4-RELEASE へのアップデートをするときに、 エラーが出て cvsup に失敗しました。3.4-RELEASE では /usr/src/usr.sbin/lpr/filters.ru/koi2alt というファイルが存在します。 一方、4.4-RELEASE では、 /usr/src/usr.sbin/lpr/filters.ru/koi2alt/ というディレクトリが存在します。 これが都合悪いらしく、ここで cvsup がエラーを出してストップします。 対処策は次の通りです。
なお、supfile の src-all を src-usrsbin に変更しておくと、 usr.sbin に関係したところだけ変更されるので便利です。
# rm /usr/src/usr.sbin/lpr/filters.ru/koi2alt
# mkdir -p /usr/src/usr.sbin/lpr/filters.ru/koi2alt
# cvsup supfile
ディレクトリの名前 filters.ru からして、 ロシア語関係のものらしいので、この結果 何か不都合があってもまあ気にしなくてもいいかな、と。