CVSD安装配置手册

-- hd [2004-08-15 09:21:38]

我写了第一个版本,这个版本是小新写的,在建用户上还是有点小小的问题。不过先放上来,回头再改。主要的问题是一定要建一个系统的用户cvsd和组cvsd,哪么一切都不会出问题了。

1. CVSD安装配置手册

1.1. 安装cvsd

我们来使用ports来安装cvsd,执行下列命令:

cd /usr/ports/devel/cvsd
make install clean

1.2. 配置cvsd

我们先来建立cvsd的自启动脚本,执行下列命令:

cd /usr/local/etc/rc.d
mv cvsd.sh.sample cvsd.sh
chmod 755 cvsd.sh

注意:在真正启动cvsd服务之前,你需要确定当前并没有启动基于inetd的cvs服务器。请将/etc/inetd.conf中的cvs pserver的服务加上注释。如果有两个cvs服务器同时运行,第二个运行的服务器将不能绑定端口的。

之后让我们来建立我们想要存放代码的目录,执行下列命令:

mkdir /home/quake/cvsd
mkdir /home/quake/cvsd/test

cvsd是我们的cvs库的根目录,这个目录用来存放我们的各个源码目录以及以jail方式运行cvs时所需的一些必要的文件,主要是一些系统文件。而test目录就是我们一个源码库的目录。建好这些目录以后我们最后会对源码库目录初始化一下:

cvs -d /home/quake/cvsd/test init

之后我们对cvsd的配置文件进行一些必要的配置,以保证正常的运转:

# 设置我们源码库的根目录
RootJail /home/quake/cvsd

# 启动cvs的用户
Uid cvsd

# 启动用户所属的组
Gid cvsd

# Nice <num>
Nice 1

# 文件存放掩码,027说明文件的存放权限为750,如果使用cvsweb,需要设置为022
Umask 027

# 出错时不生成coredump
Limit coredumpsize 0

# 运行时pid文件,通过修改这个,我们可以通过不同的cvsd.conf启动多个cvsd服务器
PidFile /var/run/cvsd.pid

# cvsd服务器监听的地址和端口
#Listen * 2401

# 最大连接数
MaxConnections 10

#日值文件,设置格式为 Log <scheme/file> [<loglevel>]
Log syslog info
#Log /var/log/cvsd.log debug

#设置源码库的路径
# Repos <path>
Repos /test

这里特别需要注意的是Uid和Gid一定是已经存在于系统的用户和组,否则cvsd是无法启动的。同时还需要说明的是,这个Uid和Gid与运行在jail中的cvsd的用户/组没有任何关系。 之后我们开始为源码库建立用户帐号。我们通过下列命令来完成:

cvsd-passwd /home/quake/cvsd/test quake
(输入帐号密码)
cvsd-buildroot /home/quake/cvsd

必须注意的是,至少在现在的cvsd 1.0的版本中,在运行cvsd-buildroot命令前,我们必须在服务器根目录中有至少一个源码库,而这个源码库中已经使用cvsd-passwd生成了至少一个帐号,即在源码库中生成一个带有帐号的passwd文件。然后再运行cvsd-buildroot构建jail所需的系统文件。否则通过cvsd-passwd添加的帐号将无法由cvsd服务器使用。在此之后我们再添加新的帐号和源码库的时候都会自动的通过其中的passwd文件来进行认证了,不需要再次执行cvsd-buildroot命令。而且经过我反复测试,现在在源码库目录中的CVSROOT/config文件里面增加SystemAuth=no设置已经不具有任何意义了。无论是否设置它,只要在运行cvsd-buildroot前使用cvsd-passwd添加一个帐号,cvsd都会通过源码库中的passwd文件进行认证。