PostgreSQL ソースツリーを anonymous CVS 以外で入手する方法として CVSup があります。 CVSup はJohn Polstra(<jdp@polstra.com>) により FreeBSD プロジェクト 向けに、 CVS リポジトリとその他のファイルツリーを配布するために開発されました。
CVSup を利用する最大の利点は、ローカルに CVS リポジトリ 全体の信頼できる複製を作成でき、その結果 log や diff などの CVS の作業に対して、すばやいローカルアクセスが可能となる 点です。その他の利点としては、最後に行ったアップデートからの差分のみを送信する効率的な ストリーミング転送プロトコルによって PostgreSQL サーバの 内容とすばやく整合性を取れるということが挙げられます。
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/
パスに cvsup が含まれていることを確認して ください。 ほとんどのシステムでは下記のコマンドにより確認できます。
which cvsup
そして次のように cvsup を実行します。
$ cvsup -L 2 postgres.cvsup
-L 2 オプションはアップデートなどを実行した時に 実行情况が確認できるようにメッセージを表示させます。 また postgres.cvsup は CVSup のコンフィギュレーションファイルで与えた パスと名前です。
以下に、ある特定のインストール用に変更した 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
上記のセットアップでpgsqlの代わりにrepositoryを指定すると、 CVSROOTディレクトリを含むcvsup.postgresql.orgで全リポジトリの 完全なコピーが入手できます。もしこの指定を行った場合は、禁止ファイルを使用して (ローカルで修正したい)CVSROOTディレクトリ内の ファイル群を排他したくなるでしょう。例えば、上記のセットアップでディレクトリを以下に置きます。 /home/cvs/sup/repository/refuse:
CVSROOT/config* CVSROOT/commitinfo* CVSROOT/loginfo*
禁止ファイルの使用方法についてはCVSupのマニュアルページを参照して下さい。
下記は、 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
CVSup はソースコード、事前にコンパイルされた バイナリ形式、あるいは Linux RPM 形式で入手できます。ソースコードから ビルドするよりもバイナリの使用がより簡単です。 なんといってもソースからの ビルドは非常に有能ですが、その半面とても大きい Modula-3 コンパイラがビルド のために要求されます。
CVSup バイナリのインストレーション
PostgreSQL ftp サイト で提供されているバイナリのプラットホームをお持ちであれば、 事前にビルドされたバイナリが使えます。 FreeBSD が稼働していればポートコレクションの CVSup があります。
注意: もともと CVSup は FreeBSD のソースツリー配布用に開発されました。"ポートコレクション" も入手 できます。 FreeBSD をお使いの方でその入手方法や、インストール方法がここに 書かれている内容で不十分だと感じる場合は手順をここに寄稿してください。
本ドキュメントの執筆時点では、バイナリの利用可能なプラットフォームは Alpha/Tru64、ix86/xBSD、 HPPA/HPUX-10.20、MIPS/IRIX、 ix86/linux-libc5、ix86/linux-glibc、 Sparc/Solaris、そして Sparc/SunOS です。
使用しているプラットフォームに合った cvsup のバイナリの tar ファイルを 入手してください (cvsupd はクライアントには必要はありません)。
FreeBSD をお使いならば、CVSup ポートコレクションを インストールしてください。
他のプラットフォームを使っている場合は、 Postgres ftp サイト で該当するバイナリを確認し、ダウンロードしてください。
内容とディレクトリの構造(あるならば)を確認するために tar ファイルを チェックしてください。少なくとも Linux の tar ファイルには静的にリンク されたバイナリとマニュアルページは別ディレクトリに梱包されてはおりません。
もし、バイナリがこの tar ファイルのトップレベルに存在するならば、 単に tar ファイルを希望のディレクトリに解凍してください。
$ cd /usr/local/bin $ tar zxvf /usr/local/src/cvsup-16.0-linux-i386.tar.gz $ mv cvsup.1 ../doc/man/man1/
もし tar ファイルの中にディレクトリ構成があるならば、/usr/local/src 内で tar ファイルを解凍し、バイナリを上記のように、該当する場所へ 移動させてください。
新しいバイナリがコマンドサーチパスに指定されていることを 確認してください。
$ rehash $ which cvsup $ set path=(path to cvsup $path) $ which cvsup /usr/local/bin/cvsup
CVSup をソースからインストールするには、 ほとんどのシステムにおいて、まず Modula-3 コンパイラをインストールする 必要があるので少々手間がかかります。このコンパイラは Linux の RPM や FreeBSD のパッケージ、または ソースコードで入手することができます。
注意: Modula-3 の純粋なソースのインストールは 200M バイトほどのディスク領域を使用 しますが、ソースを削除したあとは 50Mバイトほどに縮小されます。
Linux でのインストール方法
Modula-3 のインストール
DEC Systems Research Center で開発されたコードを維持している Polytechnique Montreal から Modula-3 ディストリビューションを ダウンロードしてください。 PM3 の RPM ディストリビューションは約 30M バイトに圧縮されています。 本ドキュメントの執筆時点では、1.1.10-1 リリースは Red Hat Linux 5.2 に 正常にインストールすることができますが、1.1.11-1 リリースは明らかに別の リリース(Red Hat Linux 6.0?) 用にビルドされており、Red Hat Linux 5.2 では 動きません。 (訳註:翻訳時点、2004 年 1 月 5 日現在での PM 版 Modula-3 の最新バージョンは 1.1.15 です。)
ティップ: この特別の rpm パッケージにはたくさんの RPM ファイルがあるので、別のディレクトリに 置いておくことをお勧めします。
いくつかの Modula-3 RPM をインストールします。
# rpm -Uvh pm3*.rpm
cvsup ディストリビューションを解凍します。
# cd /usr/local/src # tar zxf cvsup-16.0.tar.gz
GUI インタフェースを無効にして cvsup ディストリビューションを ビルドすれば、X11 ライブラリは必要ありません。
# make M3FLAGS="-DNOGUI"
また、Modula-3 がインストールされていないシステムに移すために 静的にリンクされたバイナリを作成したい場合は、以下のコマンドを 実行してください。
# make M3FLAGS="-DNOGUI -DSTATIC"
ビルドしたバイナリをインストールします。
# make M3FLAGS="-DNOGUI -DSTATIC" install