FreeBSD を最新に保つ - CVSup †cvsup を利用して,FreeBSD 本体及び ports を最新に保ちます. CVSupを行う利点 †FreeBSD は,本体及び ports 等のソースコードやドキュメントは cvs で管理されています.そのマスタ cvs からソースファイル等を取得する為に CVSup は存在しています.CVSup を利用することで,手元の FreeBSD 環境のソースツリーを最新に保つ事が可能になります.
CVSup は pull モデルと呼ばれる更新モデルを採用しており,各クライアントが更新したいと思ったタイミングでサーバに更新の問い合わせを行います.サーバはクライアントからの更新要求を待ち受けており,更新作業はクライアントが主導権を持って行われます. インストール †cvsup または csup のインストールを行ないます.インストールは ports 又は package からインストールを行なう事が出来ますが,ここでは ports でのインストール方法を扱います. CVSup のインストール †このドキュメントで説明する cvsup はクライアントプログラムです.サーバプログラムは cvsupd と呼ばれる物で,今回の対象ではありません. cd /usr/ports/net/cvsup-without-gui make install cvsup は Modula-3 という言語で書かれており,ezm3 に依存します.その為,cvsup 及び ezm3 が依存するソフトウェアとして以下のソフトウェアも一緒にインストールされます.
csup のインストール †csup は,RELENG_6 から標準でインストールされている,cvsup の後継版と言え,C言語で書かれており,依存プログラムも無い為に今後メインで使用されるだろうプログラムです. cd /usr/ports/net/csup make install 自分の ports ツリーに,csup がない場合,FreeBSD のミラーサイトより ports.tar.gz を取得,/usr 以下に展開するか,一旦 cvsup をインストールして ports ツリーを更新してから置き換えて下さい. CVSup を行うための設定ファイルを用意する †cvsup を実行するためには,以下の要件を満たす必要があり,それら要件を設定ファイルに反映させます.
どのファイルを受け取りたいのか? †cvsup を通じて入手可能なファイルは コレクション と呼ばれる名前のグループに纏められてあります.代表的なコレクションには以下の様なものが存在します.
どのバージョンのものが欲しいのか? †cvsup では,cvs で管理されているファイルの全てのバージョンのソースファイルを取得する事が可能です.その為,バージョンを明確にしないと,どのバージョンのファイルを渡せばよいのかサーバ側で判断が出来なくなってしまいます.
どこから入手したいのか? †cvsup で取得したいファイル郡を,どのサーバから入手するかを host= フィールドに定義します. 自分のマシンのどこに置きたいのか? †取得したファイルを,自分のマシンのどこのディレクトリに置きたいのかを prefix= フィールドに定義します. どこに status ファイルを置きたいのか? †CVSup クライアントは base= フィールドで指定した場所に status ファイルを保存します.この status ファイルを利用する事によって,既に受け取ったファイルや,更新情報を追従する事で効率の良いファイルの更新が可能になります. その他の supfile の設定 †通常,supfile に入れておくべきだろう行があります.それは以下の1行です. release=cvs delete use-rel-suffix compress release=cvs はメインの CVS リポジトリから情報を取得するように指示しています.delete は cvsup がファイルを削除する事を許可します.最新の状態に追従する場合は必ず指定しましょう.use-rel-suffix は何も考えずに指定して下さい.自分もよく判っていません.compress はファイルの取得中に gzip 形式の圧縮を行いファイル取得を行ないます.低速な回線では有効ですが,高速な回線では逆に遅くなるので,compress は取り払ってしまいましょう.また,compress オプションを付ける事によって,リモートの CVSup サーバの CPU 負荷が上がってしまいますので,自分のコンピュータの回線速度,CPU 状態等を考えて指定して下さい. 設定ファイルのまとめ †上記設定ルールを元に決定していくと,次のようなファイルが出来上がるかと思います. ports を最新に保つ設定ファイル~ †*default tag=. *default host=cvsup.jp.freebsd.org *default base=/var/db *default prefix=/usr *default release=cvs *default delete use-rel-suffix ports-all FreeBSD を 6-STABLE に保つ設定ファイル~ †*default tag=. *default host=cvsup.jp.freebsd.org *default base=/var/db *default prefix=/usr *default release=cvs *default delete use-rel-suffix src-all 雛形ファイル †実は,/usr/share/example/cvsup に CVSup 用の雛形ファイルがあります.このファイルを適当なディレクトリにコピーし,変更しようと思う箇所 host= や tag= 等を変更するだけで,CVSup 用のファイルが完成しますので,こちらを利用する方が間違いが無いかと思います. CVSup の実行 †cvsup|csup を実行する場合は単純に,cvsup|csup プログラムに設定ファイルを引数として与えて実行するだけです. cvsup <config-file> または csup <config-file> ファイルの内容に沿って,ソースファイル等の更新が行なわれます.
Hiroyuki Seino http://www.seichan.org/ http://www.seichan.org/blog/ |