A.3. CVSup を使ったソースの入手

PostgreSQL ソースツリーを anonymous CVS 以外で入手する方法として CVSup があります。CVSup はJohn Polstra()により FreeBSD プロジェクト 向けに、CVS リポジトリとその他のファイルツリーを配布するために開発されました。

CVSup を利用する最大の利点は、ローカルに CVS リポジトリ 全体の信頼できる複製を作成でき、その結果 logdiff などの CVS の作業に対して、すばやいローカルアクセスが可能となる点です。その他の利点としては、最後に行ったアップデートからの差分のみを送信する効率的なストリーミング転送プロトコルによって PostgreSQL サーバーの内容とすばやく整合性を取れるということが挙げられます。

A.3.1. CVSup クライアントシステムの準備

CVSup を作動させるには 2 つの場所がディレクトリとして必要です。1 つはローカルの CVS リポジトリ(またはリポジトリではなく、スナップショットを取りこむための場所、下記を参照)、2 つ目はローカルでの CVSup の情報を書き留める場所です。これらは同じディレクトリツリーに共存させることも可能です。

CVS リポジトリのコピーをどこに置くかを決めなければなりません。最近私たちのひとつのシステム上に /home/cvs/ リポジトリを設置しました。 しかし、以前は /opt/postgres/cvs/PostgreSQL 開発ツリーの下に設置していました。 リポジトリを /home/cvs/ に置いておきたいならば、

setenv CVSROOT /home/cvs
    

.cshrc ファイルに追加するか、同じ内容を .bashrc ファイルもしくは .profile ファイルに書き込んでください(シェルによって内容を追加するファイルは変わります)。

cvs リポジトリの場所は初期化されなければいけません。 CVSROOT がいったん設定されれば、下記のコマンドのみで初期化が行われます。

$ cvs init
    

その後、以下のようにしてCVSROOTディレクトリを表示させると、少なくとも CVSROOT という名のディレクトリがあるはずです。

$ ls $CVSROOT
CVSROOT/
    

A.3.2. CVSup クライアントの起動

パスに cvsup が含まれていることを確認してください。 ほとんどのシステムでは下記のコマンドにより確認できます。

which cvsup
    

そして次のように cvsup を実行します。

$ cvsup -L 2 postgres.cvsup
    

-L 2 オプションはアップデートなどを実行したときに実行情况が確認できるようにメッセージを表示させます。 また postgres.cvsupCVSup のコンフィギュレーションファイルで与えたパスと名前です。

以下に、ある特定のインストール用に変更した CVSup のコンフィギュレーションファイルを示します。 これは、完全なローカル CVS リポジトリを維持します。

# This file represents the standard CVSup distribution file
# for the PostgreSQL ORDBMS project
# Modified by lockhart@fourpalms.org 1997-08-28
# - Point to my local snapshot source tree
# - Pull the full CVS repository, not just the latest snapshot
#
# Defaults that apply to all the collections
*default host=cvsup.postgresql.org
*default compress
*default release=cvs
*default delete use-rel-suffix
# enable the following line to get the latest snapshot
#*default tag=.
# enable the following line to get whatever was specified above or by default
# at the date specified below
#*default date=97.08.29.00.00.00

# base directory where CVSup will store its 'bookmarks' file(s)
# will create subdirectory sup/
#*default base=/opt/postgres # /usr/local/pgsql
*default base=/home/cvs

# prefix directory where CVSup will store the actual distribution(s)
*default prefix=/home/cvs

# complete distribution, including all below
pgsql

# individual distributions vs 'the whole thing'
# pgsql-doc
# pgsql-perl5
# pgsql-src

   

下記は、 PostgreSQL ftp サイト にあるお勧めの CVSup 用 config ファイルで、現時点のスナップショットのみを取得します。

# This file represents the standard CVSup distribution file
# for the PostgreSQL ORDBMS project
#
# Defaults that apply to all the collections
*default host=cvsup.postgresql.org
*default compress
*default release=cvs
*default delete use-rel-suffix
*default tag=.

# base directory where CVSup will store its 'bookmarks' file(s)
*default base=/usr/local/pgsql

# prefix directory where CVSup will store the actual distribution(s)
*default prefix=/usr/local/pgsql

# complete distribution, including all below
pgsql

# individual distributions vs 'the whole thing'
# pgsql-doc
# pgsql-perl5
# pgsql-src

    

A.3.3. CVSup のインストール

CVSup はソースコード、事前にコンパイルされたバイナリ形式、あるいは Linux RPM 形式で入手できます。ソースコードからビルドするよりもバイナリの使用がより簡単です。 なんといってもソースからのビルドは非常に有能ですが、その半面とても大きい Modula-3 コンパイラがビルドのために要求されます。

CVSup バイナリのインストレーション

PostgreSQL ftp サイト で提供されているバイナリのプラットホームをお持ちであれば、事前にビルドされたバイナリが使えます。 FreeBSD が稼働していればポートコレクションの CVSup があります。

Note: もともと CVSupFreeBSD のソースツリー配布用に開発されました。"ポートコレクション" も入手できます。 FreeBSD をお使いの方でその入手方法や、インストール方法がここに書かれている内容で不十分だと感じる場合は手順をここに寄稿してください。

本ドキュメントの執筆時点では、バイナリの利用可能なプラットフォームは Alpha/Tru64、ix86/xBSD、HPPA/HPUX-10.20、MIPS/IRIX、ix86/linux-libc5、ix86/linux-glibc、Sparc/Solaris、Sparc/SunOS です。

  1. 使用しているプラットフォームに合った cvsup のバイナリの tar ファイルを入手してください(cvsupd はクライアントには必要はありません)。

    1. FreeBSD をお使いならば、CVSup ポートコレクションをインストールしてください。

    2. 他のプラットフォームを使っている場合は、Postgres ftp サイト で該当するバイナリを確認し、ダウンロードしてください。

  2. 内容とディレクトリの構造(あるならば)を確認するために tar ファイルをチェックしてください。少なくとも Linux の tar ファイルには静的にリンクされたバイナリとマニュアルページはディレクトリに梱包されないで、そのままそこにあります。

    1. もし、バイナリがこの tar ファイルのトップレベルに存在するならば、単に tar ファイルを希望のディレクトリに解凍してください。

      $ cd /usr/local/bin
      $ tar zxvf /usr/local/src/cvsup-16.0-linux-i386.tar.gz
      $ mv cvsup.1 ../doc/man/man1/
      	

    2. もし tar ファイルの中にディレクトリ構成があるならば、/usr/local/src 内で tar ファイルを解凍し、バイナリを上記のように、該当する場所へと移動させてください。

  3. 新しいバイナリは、コマンドサーチパスに指定されていることを確認してください。

    $ rehash
    $ which cvsup
    $ set path=(path to cvsup $path)
    $ which cvsup
    /usr/local/bin/cvsup
          

A.3.4. ソースからのインストール方法

CVSup をソースからインストールするには、ほとんどのシステムにおいて、まず Modula-3 コンパイラをインストールする必要があるので少々手間がかかります。このコンパイラは Linux の RPM や FreeBSD のパッケージ、またはソースコードで入手することができます。

Note: Modula-3 の純粋なソースのインストールは 200M バイトほどのディスク領域を使用しますが、ソースを削除したあとは 50Mバイトほどになります。

Linux でのインストール方法

  1. Modula-3 のインストール

    1. DEC Systems Research Center で開発されたコードを維持している Polytechnique Montreal から Modula-3 ディストリビューションをダウンロードしてください。 PM3RPM ディストリビューションは約 30M バイトに圧縮されています。 本ドキュメントの執筆時点では、1.1.10-1 リリースは Red Hat Linux 5.2 に正常にインストールすることができますが、1.1.11-1 リリースは明らかに別のリリース(Red Hat Linux 6.0?) でビルドされており、Red Hat Linux 5.2 では動きません。

      Tip: この特別の rpm パッケージにはたくさんの RPM ファイルがあるので、別のディレクトリに置いておくことをお勧めします。

    2. いくつかの Modula-3 RPM をインストールします。

      # rpm -Uvh pm3*.rpm
      	

  2. cvsup ディストリビューションを解凍します。

    # cd /usr/local/src
    # tar zxf cvsup-16.0.tar.gz
          

  3. GUI インターフェイスを無効にして cvsup ディストリビューションをビルドすれば、X11 ライブラリは必要ありません。

    # make M3FLAGS="-DNOGUI"
          

    また、Modula-3 がインストールされていないシステムに移すために静的にリンクされたバイナリを作成したい場合は、以下のコマンドを実行してください。

    # make M3FLAGS="-DNOGUI -DSTATIC"
          

  4. ビルドしたバイナリをインストールします。

    # make M3FLAGS="-DNOGUI -DSTATIC" install