| PostgreSQL 7.4 文檔 | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Appendix F. CVS 倉庫 | Fast Forward | Next |
使用匿名 CVS 檢索 PostgreSQL 源碼樹的另一個方法是 CVSup。 CVSup 是由 John Polstra 開發的,用于為 FreeBSD 項目 分發CVS 倉庫和其他文件樹。
使用 CVSup 的主要優點是它可以可靠地在你的本地機器上復制 整個 CVS 倉庫,允許快速的本地使用cvs 操作, 象log 和 diff。 其他優點包括與 PostgreSQL 服務器的快速同步,因為它使用一種高效的流傳輸協議, 該協議只傳輸最後更新(以來)的修改。
做這件事需要為 CVSup 準備兩個目錄區域:一個本地 CVS 倉庫(或者就是一個目錄區域 ─ 如果你只是抓取一個快照而不是整個倉庫; 見下文) 和一個本地 CVSup 簿記區域。 這些東西可以在同一個目錄樹裡面共存。
確定你將在哪個目錄裡面安放你的 CVS 倉庫的本地拷貝。在我們的一個系統中, 我們最近在 /home/cvs/ 設立了倉庫, 但是以前我們把它放在 /opt/postgres/cvs/ 裡的一個 PostgreSQL 開發版的目錄樹裡。 如果你想把你的倉庫放在 /home/cvs/,那麼把
setenv CVSROOT /home/cvs
放到你的 .cshrc 文件, 或者根據你用的 shell 把類似的行放到你的 .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 thePostgreSQLORDBMS 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
下面的是 PostgreSQLftp 站點 建議的 CVSup 配置文件, 它將只是抓取目前(版本)的快照:
# This file represents the standard CVSup distribution file
# for thePostgreSQLORDBMS 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 的人來說,它可以當作 "port"(移植)獲取, 如果這些描述不足以說明如何獲取和安裝它的問題, 那麼請為我們在這裡貢獻一個過程。
在寫作這些的時候,可以獲得下面平台的二進制 Alpha/Tru64,ix86/xBSD, HPPA/HP-UX10.20,MIPS/irix, ix86/linux-libc5,ix86/linux-glibc, Sparc/Solaris,and Sparc/SunOS。
檢索適合你的平台的 cvsup (做客戶端不需要cvsupd) 二進制文件。
如果你用 FreeBSD,安裝CVSup 移植。
如果你使用其他平台,在 PostgreSQL ftp 站點 找出並下載適合你的二進制文件。
如果需要,檢查tar 文件以核實內容和目錄結構。 至少對于 linux 的 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 文件裡面有一個目錄結構, 那麼把 tar 文件解包到 /usr/local/src 裡, 然後把二進制移動到上面對應的合適路徑裡。
確保新的二進制在你的路徑裡。
$ rehash
$ which cvsup
$ set path=(path to cvsup $path)
$ which cvsup
/usr/local/bin/cvsup
從源代碼安裝 CVSup 並非易如反掌, 主要是因為大多數系統將需要先安裝一個 Modula-3 編譯器。 這個編譯器可以以Linux RPM, FreeBSD 的包或者源代碼的形式獲得。
注意: 一個 Modula-3 的淨代碼安裝大約需要 200MB 磁盤空間, 當把源代碼刪除後大約只有 50MB。
Linux 安裝
安裝 Modula-3.
從 Polytechnique Montral 獲取 Modula-3 發布,他們還在積極地維護著基于 DEC 系統研究中心 的代碼。 PM3 RPM 版本壓縮後大約 30MB。 在我們寫作的時候,1.1.10-1 版在 RH-5.2 上幹淨利落的安裝好了, 而1.1.11-1 版本顯然是為另外一個版本(RH-6.0?)制作的, 無法在 RH-5.2 上運行。
提示: 這些 rpm 包有許多 RPM 文件, 因此你可能會願意把它們放在獨立的一個目錄裡。
安裝 Modula-3 rpm:
# rpm -Uvh pm3*.rpm
解包 cvsup 版本:
# cd /usr/local/src
# tar zxf cvsup-16.0.tar.gz
制作 cvsup 的發布版,禁止 GUI 界面以避免要求 X11 庫:
# make M3FLAGS="-DNOGUI"
如果你想制作一個靜態的二進制以便于裝到一個沒有安裝 Modula-3 的系統,用:
# make M3FLAGS="-DNOGUI -DSTATIC"
安裝制作好了的二進制:
# make M3FLAGS="-DNOGUI -DSTATIC" install