[OpenBSD]

CVSup


目录


什么是 CVSup?

CVSup 是一个用于从远程服务器主机上的主 cvs(1) 版本库分发和更新版本库的软件包。OpenBSD 用位于加拿大的一个中心开发机器上的 CVS 版本库维护源代码。使用 CVSup 的 OpenBSD 用户可以容易的保证他们的版本库最新。

CVSup 使用所谓拉模型执行更新。在拉模型中,客户端在需要的时候, 询问服务器以获取更新数据。服务器被动的等待客户端发出更新请求, 因此所有更新由客户端发起,服务器不会主动发送更新数据。用户必须手工运行 CVSup 客户端获取更新数据,或者设置一个 cron(8) 任务定期自动运行。

术语 CVSup,大写指代整个软件包。 它的主要组件是运行在每个用户机器上的客户端软件 cvsup(或者另一个实现 csup) 和运行于每个 OpenBSD CVSup 镜像站点的服务器软件 cvsupd

OpenBSD 项目当前有 6 个主要的版本库:

什么是 CVS?

CVS 是用来管理 OpenBSD 源代码的源代码控制系统。它在这里有更详细的描述。注意 CVS 和 CVSup 是完全不同的程序。尽管 CVS 可以用来访问远程文件, 但是它没有针对通过网络分发整个版本库优化,CVSup 为此提供了数量级上的优化。

开始使用 CVSup

因为 CVSup 用 Modula-3 语言编写,从源代码构建 CVSup 是很麻烦的事情。 lang/ezm3 提供了一个很小的 Modula-3 编译器和运行库,它只适用于使用 Modula-3 仅是为了构建 CVSup 的用户。然而,如果你只关心运行 CVSup,建议你从 FTP 镜像站点下载软件包,而不是从 net/cvsup 构建它。当前 OpenBSD 只移植了 Ezm3 这个 Modula-3 实现,因此 CVSup 只能用于 i386 平台。

或者,使用 C 编写的 csup 包,它提供了兼容的客户端,编译简单,体积小,速度快,维护活跃。

想进一步了解 CVSup,参见其 项目主页

为了使用 CVSup 镜像 OpenBSD 版本库,可以使用下述配置文件:

        # Defaults that apply to all the collections
        *default host=anoncvs1.usa.openbsd.org
        *default base=/var
        *default prefix=/cvs
        *default umask=002 release=cvs delete use-rel-suffix

        # If your network link is a T1 or faster, comment out the following line.
        *default compress

        OpenBSD-all
        #OpenBSD-ports
        #OpenBSD-src
        #OpenBSD-www
        #OpenBSD-xenocara
        #OpenBSD-x11
        #OpenBSD-xf4

它告诉 cvsup 从 anoncvs1.usa.openbsd.org 更新全部 OpenBSD 版本库,使用 umask(2) 设置同组用户有写本地版本库的权限。

假设该文件另存为 cvs-supfile,可以用下面的命令调用 cvsup:

        cvsup cvs-supfile

然而在批处理模式,需要用下面的命令:

        cvsup -g -L 2 cvs-supfile

使用 CVS 操作你的版本库

现在你有了 CVS 版本库的本地副本,可以在本地象操作远程版本库一样操作, 例如检出、更新,或者其它的 CVS 操作。例如:

        cvs -d/cvs checkout src -P
        cvs -d/cvs up -Pd
        cvs -d/cvs diff -u file.c
关于 CVS 操作更详细的信息位于 FAQ5, 获取适当的源代码cvs(1) 手册页。

在检出模式运行 CVSup

除了使用 CVSup 获得版本库,然后使用 CVS 之外,你还可以通过在文件 supfile 的 *default 或集合的选项中增加 tagdate 让 CVSup 在检出模式运行,这样就不需要用 CVS 检出了,还可以节约大量磁盘空间, 缺陷是你无法再使用本地版本库来快速执行 CVS 操作。特别指出,你还可以使用光盘中的源代码来有效的加速同步操作。

可以使用下述配置文件更新你的 ports 源代码:

        # Defaults that apply to all the collections
        *default host=anoncvs1.usa.openbsd.org
        *default base=/var
        *default prefix=/usr
        *default umask=002 release=cvs delete use-rel-suffix

        # If your network link is a T1 or faster, comment out the following line.
        *default compress

        # Ports Collection.
        OpenBSD-ports tag=.

可以使用任意的 CVS 符号标签。一个点"."代表最新的开发版本, 也就是主分支中所有文件的最新版本。注意由于 CVSup 不能辨别标签的有效性, 所以要指定一个存在的标签,尝试用不存在的标签同步现有的源代码, 将会删除所有文件。

或者,你也可以使用关键字 date=[cc.]yy.mm.dd.hh.mm.ss 来用日期选择版本。所有的 17 或 20 个字符必须按照显示的格式给出。 对于2000年或其后的日期,要指定世纪 cc。对于更早的时间, 只需要指定最后两个数字 yy。你也可以同时使用 tagdate

可用的 CVSup 服务器

下述 CVSup 服务器可用:

cvsup.no.openbsd.org

located in Oslo, Norway; maintained by Anders Nordby.
Updated every 3 hours.

Available collections:

OpenBSD-src - The src repository
OpenBSD-ports - The ports repository
OpenBSD-www - The www repository
OpenBSD-x11 - The XFree86-3 repository
OpenBSD-xf4 - The XFree86-4 repository
OpenBSD-xenocara - The Xenocara repository
OpenBSD-all - All OpenBSD repositories
skeleton.phys.spbu.ru

located in St. Petersburg State University, St. Petersburg, Russia; maintained by Dima Veselov.
Updated every 4 hours.

Available collections:

OpenBSD-ports - The ports repository
cvsup.jp.OpenBSD.org

located at Otemachi, Tokyo, Japan; maintained by CVSup Administrator.
Updated every 3 hours.

Available collections:

OpenBSD-src - The src repository
OpenBSD-ports - The ports repository
OpenBSD-www - The www repository
OpenBSD-x11 - The XFree86-3 repository
OpenBSD-xf4 - The XFree86-4 repository
OpenBSD-xenocara - The Xenocara repository
OpenBSD-all - All OpenBSD repositories
cvsup.tw.OpenBSD.org

located at National Chiao-Tung University, Taiwan; maintained by Yi-Jheng Lin.
Updated every 2 hours.

Available collections:

OpenBSD-src - The src repository
OpenBSD-ports - The ports repository
OpenBSD-www - The www repository
OpenBSD-x11 - The XFree86-3 repository
OpenBSD-xf4 - The XFree86-4 repository
OpenBSD-all - All OpenBSD repositories
mirror.osn.de

located in Germany maintained by Armin Wolfermann.
Updated every 3 hours.

Available collections:

OpenBSD-src - The src repository
OpenBSD-ports - The ports repository
OpenBSD-www - The www repository
OpenBSD-x11 - The XFree86-3 repository
OpenBSD-xf4 - The XFree86-4 repository
OpenBSD-xenocara - The Xenocara repository
OpenBSD-all - All OpenBSD repositories

注意: 如果列在这里的你的服务器的信息不准确或者不清楚,请联系 www@openbsd.org

你可能想用 traceroute(8) 来找出距离你最近的服务器。当发现服务器有问题请报告给我们的维护者

在2010年4月,CVS 版本库的大小是:

OpenBSD-ports - 425MB
OpenBSD-src - 1684MB
OpenBSD-www - 401MB
OpenBSD-xenocara - 723MB
OpenBSD-xf4 - 580MB
OpenBSD-x11 - 200MB

还有一个额外的 620MB 目录 CVSROOT。全部版本库的大小为 4.2GB,以每年 400MB 的速度增长。

重要说明: 有一些与加密软件相关的问题每个人都应该注意:

OpenBSD 项目正在寻求更多的 CVSup 服务器 -- 如果你有兴趣,请与 www@openbsd.org 联系以获得详细的配置信息。


OpenBSD www@openbsd.org
$OpenBSD: cvsup.html,v 1.16 2010/11/25 16:49:11 ajacoutot Exp $