PostgreSQLソースツリーを匿名CVS以外で入手する方法として CVSupがあります。CVSupはJohn Polstra(<jdp@polstra.com>
)によりFreeBSDプロジェクト向けに、CVSリポジトリとその他のファイルツリーを配布するために開発されました。
CVSupを利用する最大の利点は、ローカルにCVSリポジトリ全体の信頼できる複製を作成でき、その結果log
やdiff
などのCVSの作業に対して、素早いローカルアクセスが可能となる点です。その他の利点としては、最後に行ったアップデートからの差分のみを送信する効率的なストリーミング転送プロトコルによってPostgreSQLサーバの内容と素早く整合性を取れるということが挙げられます。
CVSupを作動させるには2つのディレクトリが必要です。1つはローカルのCVSリポジトリ(またはリポジトリではなく、スナップショットを取り込むための場所。下記を参照)、2つ目はローカルでのCVSupの情報を書き留める場所です。これらは同じディレクトリツリーに共存させることも可能です。
CVSリポジトリのコピーをどこに置くかを決めなければなりません。最近我々の1つのシステム上に/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ポートコレクションをインストールしてください。
他のプラットフォームを使っている場合は、PostgreSQL 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の純粋なソースのインストールは200メガバイトほどのディスク領域を使用しますが、ソースを削除した後は50メガバイトほどに縮小されます。
Linuxでのインストール方法
Modula-3のインストール
DEC Systems Research Centerで開発されたコードを維持しているPolytechnique MontrealからModula-3ディストリビューションをダウンロードしてください。PM3のRPMディストリビューションは約30メガバイトに圧縮されています。本ドキュメントの執筆時点では、1.1.10-1リリースはRed Hat Linux 5.2に正常にインストールすることができますが、1.1.11-1リリースは明らかに別のリリース(Red Hat Linux 6.0?)用にビルドされており、Red Hat Linux 5.2では動きません。
ティップ: この特別の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