↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

不受支持的版本: 7.3 / 7.2 / 7.1
历史版本PostgreSQL 7.1 已于 2006 年 4 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本手册首页。

DG1.3. 通过 CVSup 获取源码 #

检索 Postgres 源码树的另一种匿名 CVS 替代方案是 CVSup。 CVSup 由 John Polstra()开发,用于为 FreeBSD 项目分发 CVS 仓库和其他文件树。

使用 CVSup 的一个主要优点是它能可靠地把整个 CVS 仓库复制到你的本地系统上,使 log 和 diff 等 cvs 操作可以快速本地进行。其他优点包括与 Postgres 服务器的快速同步——这得益于一种高效的流式传输协议,它只发送上次更新以来的变更。

DG1.3.1. 准备 CVSup 客户端系统

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/
    

DG1.3.2. 运行 CVSup 客户端

确认 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

    

DG1.3.3. 安装 CVSup

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。

  1. 取回适合你平台的 cvsup 二进制 tar 文件(作为客户端不需要 cvsupd)。

    1. 如果你运行的是 FreeBSD,安装 CVSup 的 port。

    2. 如果是其他平台,到 Postgres ftp 站点查找并下载相应的二进制。

  2. 检查 tar 文件以确认其内容和目录结构(如果有的话)。至少对 linux 的 tar 文件来说,里面只包含静态二进制和手册页,没有任何目录包装。

    1. 如果二进制位于 tar 文件的顶层,那么直接把 tar 文件解包到你的目标目录即可:

      $ cd /usr/local/bin
      $ tar zxvf /usr/local/src/cvsup-16.0-linux-i386.tar.gz
      $ mv cvsup.1 ../doc/man/man1/
              
      
    2. 如果 tar 文件里有目录结构,那么把 tar 文件解包到 /usr/local/src 中,再把二进制移动到上面所说的合适位置。

  3. 确保新的二进制在你的路径中。

    $ rehash
    $ which cvsup
    $ set path=(path to cvsup $path)
    $ which cvsup
    /usr/local/bin/cvsup
          
    

DG1.3.4. 从源码安装

从源码安装 CVSup 并不完全轻松,主要因为大多数系统需要先安装 Modula-3 编译器。这个编译器有 Linux RPM、FreeBSD 软件包或源码等形式。

注意

从纯净源码安装 Modula-3 大约需要 200MB 磁盘空间,删除源码后缩小到大约 50MB。

Linux 安装

  1. 安装 Modula-3。

    1. 从 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 文件,所以你多半想把它们放到一个单独的目录中。

    2. 安装 Modula-3 的 rpm:

      # rpm -Uvh pm3*.rpm
              
      
  2. 解包 cvsup 发行包:

    # cd /usr/local/src
    # tar zxf cvsup-16.0.tar.gz
          
    
  3. 构建 cvsup 发行包,禁用 GUI 界面特性以避免依赖 X11 库:

    # make M3FLAGS="-DNOGUI"
          
    

    如果你想构建一个静态二进制以便移到可能没装 Modula-3 的系统上,试试:

    # make M3FLAGS="-DNOGUI -DSTATIC"
          
    
  4. 安装构建好的二进制:

    # make M3FLAGS="-DNOGUI -DSTATIC" install
          
    

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。