3 FreeBSD 的专用配置

  FreeBSD 项目自己使用一个有点不同的配置,那就是同时也使用 FreeBSD CVSROOT 中的 freebsd 子目录。 因为大量的 committer 必须在相同的用户组中, 因此项目写了一个简单的 wrapper 来确保 committer 可以正确的提交, 并配置储存库的用户组名称。

  如果你的储存库也需要这样的功能,那么下面就会介绍如何建立, 不过首先要先来看一段复杂的概述。

3.1 FreeBSD 配置中使用的文件

3.2 步骤

  1. 只把你的用户名加到 access 中。

  2. 编辑 cvswrap.c 的路径以符合你的配置, 定义在大写的 ACCESS 中。 同时如果默认值不符合你的情况的话也应该修改本地实际的 cvs 程序所在位置。 原始的 cvswrap.c 希望替代服务器端的 CVS 程序, 例如将其改名为 /usr/bin/ncvs

    我的 cvswrap.c 是这样:

    #define ACCESS "/local/cvsroot/CVSROOT/access"
    #define REALCVS "/usr/bin/ncvs"
    
  3. 接下来是建立 wrapper 来确认你在提交时是在正确的用户组中。 在你的 CVSROOT 中的 cvswrap.c 要能够使用。

    在你完成编辑并加入正确的路径后我们要来编译源代码:

    % cc -o cvs cvswrap.c
    

    然后进行需要配置(此步骤需要 root 权限):

    # mv /usr/bin/cvs /usr/bin/ncvs
    # mv cvs /usr/bin/cvs
    # chown root:ncvs /usr/bin/cvs /usr/bin/ncvs
    # chmod o-rx /usr/bin/ncvs
    # chmod u-w,g+s /usr/bin/cvs
    

    这会将 wrapper 安装成预设的 cvs 程序, 请确定任何要使用储存库的人应该有正确的存取权限。

  4. 现在你可以删除所有在储存库用户组中的使用者,所有的存取控制会经由 wrapper 完成,同时 wrapper 会配置存取的正确用户组。

3.3 测试配置

  你的 wrapper 现在应该已经安装好了,你当然也可以强制提交 access 来测试是否正常:

% cvs commit -f -m 'Forced commit to test the new CVSROOT scripts' access

  同样地,如果有错误,检查是否上述所有步骤都有正确的执行。

本文档和其它文档可从这里下载:ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

如果对于FreeBSD有问题,请先阅读文档,如不能解决再联系<questions@FreeBSD.org>.
关于本文档的问题请发信联系 <doc@FreeBSD.org>.