| PostgreSQL 8.0.0 中文文件(轉譯自 PostgreSQL 中國 製作的簡體中文版本) | ||||
|---|---|---|---|---|
| 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
在上面的步驟裡,如果您聲明 repository,而不是pgsql, 那麼您就會得到 cvsup.postgresql.org 上面的一個完整的倉庫拷貝, 包括其 CVSROOT 目錄。如果這麼做,您可能會希望排除那些目錄中的某些文件, 以便您做本地的修改,方法是使用一個 refuse 文件。比如,對於上面的設置,您可以在 /home/cvs/sup/repository/refuse 裡面放下面這些行:
CVSROOT/config* CVSROOT/commitinfo* CVSROOT/loginfo*
參考 CVSup 的手冊頁獲取如何使用拒絕(refuse)文件的訊息。
下面的是 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