1. 默认安装redhat就会安装cvs服务器。也可以通过下载rpm包或者源代码包来安装。
2. 在/etc/xinetd.d下面创建一个文件cvspserver,其内容如下:
service cvspserver
{
port = 2401
socket_type = stream
wait = no
user = root
server = /usr/bin/cvs
server_args = -f –-allow-root=/cvs pserver
}
其中cvs命令在/usr/bin目录下,而设定cvs工作根目录是/cvs。
3. 重新启动xinetd超级服务器,使用下面命令
/etc/init.d/xinetd restart
4. 对cvs服务器进行初始化,使用下面命令
cvs –d /cvs init
这项命令成功后,会在/cvs目录下创建一个CVSROOT目录。其中存放了一些CVS系统的参数。
5. 设置CVSROOT权限
对于提交代码和导出代码的用户,必须具有下列权限:
1) 对CVSROOT目录下的任何文件具有读权限
2) 对CVSROOT/history和CVS/val-tags的写权限
3) 对CVSROOT目录本身具有读、写和执行权限。
采用的方式是把所有用户都加入一个cvsuser组。以组权限统一设置上述权限。这样所有用户都能具有必需的权限而是用cvs系统了。
命令:
groupadd cvsuser
//增加cvsuser组
useradd liuhui
//增加用户liuhui
usermod –g cvsuser liuhui //修改liuhui的第一所属组为cvsuser
chgrp –R cvsuser /cvs/CVSROOT
//修改/cvs/CVSROOT的组所有者为cvsuser
chmod –R 040 /cvs/CVSROOT //满足第一个条件
chmod 060 /cvs/CVSROOT/history
chmod 060 /cvs/CVSROOT/val-tags
//满足第二个条件
chmod 070 /cvs/CVSROOT
//满足第三个条件
6. 设置项目目录权限
有一种比较简单的方式,即所有用户都属于cvsuser组,把所有项目目录的权限设置为用户和组可读写执行。所有import的项目的对应目录的所属组都是cvsuser,也就可以被所有用户所读写执行。
方法确实存在风险,因为任何属于cvsuser的用户都可以读写所有项目目录,但发行符合XP的思想。所有代码共享维护。
另一个方案是对不同的目录设置不同的所属组,用户加入该组就具有对该目录的访问权限。一些属于同一项目的目录可以通过设置属于相同的组使它们具有相同的权限。
7. 用已经存在的cvs服务器仓库在新的服务器上重建
建立新的cvs服务器使用上面步骤就可以了。写这一部分是因为自己原来的cvs服务器经常死机,所以新建了一个服务器,需要把以前的。我是采用下面方法重建的:
1) 将原服务器上cvs根目录进行打包
tar –czf bak.tgz /oldcvs/*
2) 删除掉新cvs服务器的CVSROOT目录。
因为要使用原cvs服务器的CVSROOT
3) 使用scp将bak.tgz传输到新服务器。
因为自己使用了ssh,所以scp。ftp呀什么的都可以,只需要拷贝到新服务器上。
4) 在新服务器上的/cvs目录下解压缩
tar –xzf bak.tgz
5) 根据5和6修改相应目录的权限
6) 如果客户机上已经有导出的项目,则在CVS目录的root文件中修改其内容为新的cvs服务器的地址和根目录。