CVSync 是一个用于从远程服务器主机上 cvs(1) 版本库分发和更新版本库的软件包。OpenBSD 用位于加拿大的一个中心开发机器上的 CVS 版本库维护源代码。使用 CVSync 的 OpenBSD 用户可以容易的保证他们的版本库最新。
CVSync 使用所谓拉模型执行更新。在拉模型中,客户端在需要的时候, 询问服务器以获取更新数据。服务器被动的等待客户端发出更新请求, 因此所有更新由客户端发起,服务器不会主动发送更新数据。用户必须手工运行 CVSync 客户端获取更新数据,或者设置一个 cron(8) 任务定期自动运行。
术语 CVSync,大写指代整个软件包。 它的主要组件是运行在每个用户机器上的客户端软件 cvsync 和运行于每个 OpenBSD CVSync 镜像站点的服务器软件 cvsyncd。
CVSync 被设计为比 sup(1) 和 CVSup 更快速和灵活。
OpenBSD 项目当前有 6 个主要的版本库:
CVS 是用来管理 OpenBSD 源代码的源代码控制系统。它在这里有更详细的描述。注意 CVS 和 CVSync 是完全不同的程序。尽管 CVS 可以用来访问远程文件, 但是它没有针对通过网络分发整个版本库优化,CVSync 为此提供了数量级上的优化。
如果你只关心运行 CVSync,建议你从 FTP 镜像站点下载软件包,而不是从 net/cvsync 构建它。
想进一步了解 CVSync,参见其 项目主页。
为了使用 CVSync 镜像 OpenBSD 版本库,可以使用下述配置文件:
config {
hostname cvsync.de.openbsd.org
# If your network link is a T1 or faster, comment out the following line.
compress
collection {
name openbsd release rcs
prefix /cvs
errormode fixup
umask 002
}
# collection {
# name openbsd-ports release rcs
# prefix prefix /cvs
# errormode fixup
# umask 002
# }
# collection {
# name openbsd-src release rcs
# prefix prefix /cvs
# errormode fixup
# umask 002
# }
# collection {
# name openbsd-xenocara release rcs
# prefix prefix /cvs
# errormode fixup
# umask 002
# }
# collection {
# name openbsd-www release rcs
# prefix prefix /cvs
# errormode fixup
# umask 002
# }
}
它告诉 cvsync 从 cvsync.de.openbsd.org 更新全部 OpenBSD 版本库,使用 umask(2) 设置同组用户有写本地版本库的权限。
假设该文件另存为 cvs-syncfile,可以用下面的命令调用 cvsync:
cvsync -c cvs-syncfile
现在你有了 CVS 版本库的本地副本,可以在本地象操作远程版本库一样操作, 例如检出、更新,或者其它的 CVS 操作。例如:
cvs -d/cvs checkout src -P
cvs -d/cvs up -Pd
cvs -d/cvs diff -u file.c
关于 CVS 操作更详细的信息位于 FAQ5,
获取适当的源代码 和 cvs(1)
手册页。
下述 CVSync 服务器可用:
注意: 如果列在这里的你的服务器的信息不准确或者不清楚,请联系 beck@openbsd.org 或 naddy@openbsd.org。
你可能想用 traceroute(8) 来找出距离你最近的服务器。当发现服务器有问题请报告给我们的维护者。
在2010年4月,CVS 版本库的大小是:
| OpenBSD-ports | - 425MB | |
| OpenBSD-src | - 1684MB | |
| OpenBSD-www | - 401MB | |
| openbsd-xenocara | - 723MB | |
| OpenBSD-xf4 | - 580MB | |
| OpenBSD-x11 | - 210MB | |
| OpenBSD-cvsroot | - 745MB |
全部版本库的大小为 4.2GB,以每年 400MB 的速度增长。
重要说明: 有一些与加密软件相关的问题每个人都应该注意:
OpenBSD 源代码出自加拿大。根据加拿大个人研究和加拿大输出控制列表的描述, 从加拿大向世界各地输出加密软件是合法的。
然而,如果你不在美国或加拿大,你不应该从位于美国的 CVSync 服务器上获取 OpenBSD 源代码的加密软件部分。可能有问题的文件是...
由于美国 ITAR 军用品列表,加密软件只能从美国输出到加拿大。
OpenBSD 项目正在寻求更多的 CVSync 服务器 -- 如果你有兴趣,请与 Christian Weisgerber 联系以获得详细的配置信息。