3. 工具的设置

现在 CVS 和 cvsd 已经构建完成,让我们开始设置它们。

3.1. 创建 CVS 仓库

在我们开始之前,我强烈建议您阅读 CVS 手册,该手册与 CVS 的其余部分一起安装。 如果您的系统上安装了独立的 info 浏览器或 texinfo 包,您可以通过在 shell 中键入命令 info cvs 来查看此手册。

首先,规划您希望仓库放置的位置。 Debian 默认设置为/var/lib/cvs。 我的仓库位于目录/cvs/root下,并且位于其自己的小分区上。 您具体怎么做取决于您的需求,并且可能会有很大差异。

Important

确保仓库是空目录的子目录! 例如,如果您要将其安装到/var/lib/cvs,请将仓库放在/var/lib/cvs/root(或者您希望的最后一个目录)。 这是因为我们为 Pserver 创建了一个 chroot 监狱!

在您规划好要放置仓库的位置,并在需要时创建了必要的分区之后,运行以下命令(我们假设它将位于/cvs/root):

$ cvs -d /cvs/root init
  

这将初始化您的仓库并设置必要的CVSROOT文件。

3.2. 设置监狱

现在我们有了CVSROOT设置,我们需要为 cvsd 复制适当的库和文件,cvsd 在 chroot 监狱中运行 Pserver。

3.2.1. 传输必要的文件

Note

如果您从 RPM 等软件包管理系统安装了 cvsd,则可能已经为您完成了此操作。 如果是这种情况,请跳到下一步。

将您的目录更改为/cvs(或您根目录之前的目录)并输入以下命令

$ cvsd-buildroot /cvs
$ mkdir -p var/lock
$ adduser cvsd
$ addgroup cvsd
   

值得庆幸的是,cvsd 附带了脚本 cvsd-buildroot,因此我们不必手动完成所有必要的复制。 但是,您应该编辑/cvs/etc/passwd文件,并删除 “root,” 的条目,因为它是不需要的。

3.2.2. 配置 cvsd

中的默认设置/etc/cvsd/cvsd.conf是可以的,但可能不太理想。 确保RootJail设置为您构建的 chroot 监狱的位置,并且仓库是仓库相对于 chroot 监狱的目录。 设置maxconnections为您想要的任何值,并确保 Uid 和 Gid 设置为 cvsd。 如果您缺少已构建的cvsd.conf文件,这是我的

示例 1. 我的cvsd.conf

Uid cvsd
Gid cvsd
PidFile /var/run/cvsd.pid
RootJail /cvs
MaxConnections 10
Nice 1
Listen * 2401
Repos /root
Limit coredumpsize 0
    

3.3. 添加匿名访问

现在回到配置 CVS,但别担心,我们快完成了! 我们必须编辑几个必要的文件以允许匿名访问。 首先,确保您不在 CVS 目录中,检出 CVSROOT 模块

# cvs -d /cvs/root checkout CVSROOT
# cd CVSROOT
  

现在编辑文件READERS。 如果它不存在,请创建它,并添加一行内容为 “anonymous” 的行。

Important

您需要在文件末尾添加一个额外的空行!

文件READERS是具有 CVS 仓库只读访问权限的用户列表。 具有写入权限的人员列在文件WRITERS中。 阅读 cvs 手册 [1] 以获取有关这些文件的更多信息。

现在使用以下命令提交仓库。 我们假设您当前的工作目录是CVSROOT。 如果不是,请忽略 cd 步骤。

# cd ../
# cvs -d /cvs/root commit
  

您现在应该收到一条类似如下的消息正在重建管理文件,这意味着它已成功。

最后一步,我们就完成了! 运行以下命令,并在提示输入密码时,只需按 ENTER

# cvsd-passwd /cvs/root anonymous
  

恭喜! 您现在拥有对仓库的安全、匿名 CVS Pserver 访问权限!

3.4. 尚未完全完成! 更改锁文件位置

这里有一个小功能,实际上超出了本简易教程的范围,但仍然值得注意。 它是更改 Pserver 将放置锁文件的目录的能力。

通常,Pserver 会将锁文件放在与您尝试检出的文件相同的目录中,但这可能会导致权限混乱。 回到我们为 cvsd 构建 chroot 监狱的时候; 我们还创建了目录var/lock。 这就是我们将放置锁文件的地方。

因此,请使用以下示例,替换/cvs为您chroot环境的位置,以及var为锁文件将要放置的位置。 我的锁文件放置在var/lock下,并且var下没有其他内容,因此 chown -R 是安全的。 此外,请将 cvsd 用户和组 ID 替换为 cvsd 运行的用户和组 ID。

# cd /cvs
# chown -R cvsd:cvsd var
# chmod -R 775 var
# cd
# cvs -d /cvs/root checkout CVSROOT
# cd CVSROOT
  

现在我们要编辑文件config。 将 lock dir 更改为您希望放置锁文件的目录,在我们的例子中为/var/lock.

Important

请注意,这不仅适用于 Pserver, 也适用于非 CHROOT SSH 登录方法! 确保此目录不仅存在,而且您也可以相对于根目录写入它。 这就是我选择/var/lock的原因,因为它满足这些条件。

现在提交更改

# cd ../
# cvs -d /cvs/root commit
  

就这样!

注释

[1]

info cvs,如果您在系统上安装了独立的 info 查看器