Appendix A. CVS リポジトリ

Table of Contents
A.1. Anonymous CVSを使ってソースを入手する
A.2. CVS ツリー構造
A.3. CVSup を使ったソースの入手

PostgreSQL のソースコードは CVS コード管理システムを使って保存管理されています。

ローカルマシンに PostgreSQL サーバから CVS コードツリーを持ってくるには 匿名 CVS と CVSup の 2 つの方法があります。

A.1. Anonymous CVSを使ってソースを入手する

常時最新のソースを保っていたい場合は、CVS サーバーから取得しておいて、CVSを使って時折アップデートをかけてください。

匿名 CVS

  1. CVS(Concurrent Version Control System)を自分の環境にインストールしておく必要があります。 http://www.cyclic.com/ またはどんな GNU ソフトウェアアーカイブのサイトからでも入手できます。現在ではバージョン 1.10 をお勧めします(これが書かれた時点での最新のものです)。最新バージョンの cvs が最初からインストールされているシステムもあります。 (訳注:CVSの最新バージョンの入手先は現在では http://www.cvshome.org/ の方がよいかもしれません。 翻訳時点での最新バージョンは 1.11.2 です。)

  2. まず CVS サーバーに最初のログインをしてください。

    $ cvs -d :pserver:anoncvs@anoncvs.postgresql.org:/projects/cvsroot login
         

    パスワードのプロンプトが表示されますが、Enter キーを押すだけで大丈夫です。 パスワードはホームディレクトリの .cvspass に保存されるので、この作業は一度だけ行えば結構です。

  3. PostgreSQL のソースを取り込みます。

    cvs -z3 -d :pserver:anoncvs@anoncvs.postgresql.org:/projects/cvsroot co -P pgsql
         

    上記のコマンドで PostgreSQL ソースを、カレントディレクトリのサブディレクトリ pgsql にインストールします。

    Note: もし高速でインターネット接続できる環境にあるならば CVSに gzip を使って転送されるデータを圧縮するよう指示を出す -z3 は必要ないかもしれません。しかし、モデム接続ではとても有益です。

    この初めてのチェックアウトは単に tar.gz ファイルをダウンロードするときと比べて少々時間がかかります。 もし 28.8Kbps のモデムを使用しているならば 40分 ほどかかります。CVS の有利な点は実際にファイル群を更新するときに現れます。

  4. CVS の最新のソースに合わせて更新したい場合は cdpgsql サブディレクトリにディレクトリを変更してから以下のように入力します。

    
$ cvs -z3 update -d -P
         

    こうすることにより、前回更新したときからの差分のみを更新します。この方法により、モデム接続であっても数分で更新することができます。

  5. ホームディレクトリに以下のような内容の .cvsrc を作成することにより、入力項目を減らすことができます。

    cvs -z3
    update -d -P
         

    これはすべての cvs のコマンドに対して -z3 オプションを付け、-d-P のオプションを cvs update に付けます。 以後は以下のようにするだけでファイルの更新が行われます。

    $ cvs update
         

Caution

いくつかの CVS の古いバージョンではチェックアウトされたすべてのファイルがだれても書き込み可能な状態であなたのディレクトリに保存されるというバグがあります。もしこのような情况になっていたら下記のように対処してください。

$ chmod -R go-w pgsql
    

このコマンドで権限が正常に設定されます。 このバグは CVS バージョン1.9.28 で修正されています。

CVSはこのほかにもたとえば最新版ではなく、古いPostgreSQL のソースを取り出すなどさまざまなことができます。より詳細は CVS に付属してくるマニュアル、もしくは http://www.cyclic.com/ にあるオンラインのドキュメントを参照してください。