pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
检索 Postgres 源码树的另一种匿名 CVS 替代方案是 CVSup。 CVSup 由 John Polstra 开发,用于为 FreeBSD 项目分发 CVS 仓库和其他文件树。
使用 CVSup 的一个主要优点是它能可靠地把整个 CVS 仓库复制到你的本地系统上,使 log 和 diff 等 cvs 操作可以快速本地进行。其他优点包括与 Postgres 服务器的快速同步——这得益于一种高效的流式传输协议,它只发送上次更新以来的变更。
CVSup 工作需要两个目录区域:一个本地 CVS 仓库(如果你获取的是快照而非仓库,那就只是一个目录区域;见下文),以及一个本地 CVSup 簿记区域。它们可以共存于同一棵目录树中。
决定你想把本地 CVS 仓库放在哪里。最近我们在其中一台系统上把仓库建在了 /home/cvs/,但以前曾把它放在 /opt/postgres/cvs/ 的 Postgres 开发树下。如果你打算把仓库放在 /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 the PostgreSQL ORDBMS project # Modified by lockhart@alumni.caltech.edu 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=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 points to 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 points to 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
下面是从 Postgres ftp 站点建议使用的 CVSup 配置文件,它只获取当前快照:
# This file represents the standard CVSup distribution file # for the PostgreSQL ORDBMS project # # Defaults that apply to all the collections *default host=postgresql.org *default compress *default release=cvs *default delete use-rel-suffix *default tag=. # base directory points to where CVSup will store its 'bookmarks' file(s) *default base=/usr/local/pgsql# prefix directory points to 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
如果 Postgres ftp 站点上发布了你所用平台的二进制,或者你运行的是 FreeBSD(CVSup 有对应的 port),就可以使用预构建的二进制。
CVSup 最初是作为分发 FreeBSD 源码树的工具开发的。它以"port"的形式提供;对于运行 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 的 port。
如果是其他平台,到 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 文件里有目录结构,那么把 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 Montréal 获取 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
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。