【CTO360 技术文章】
CVS 是 Concurrent Version System(并行版本系统)的缩写,用于版本管concurr version system理。在多人团队开发中的作用更加明显。CVS 的基本工作思作用开发基本路是这样的:在一台服务器上建立一个仓库,仓库里可以服务器这样仓库存放许多不同项目的源程序。由仓库管理员统一管理这些源程序管理员仓库源程序。这样,就好象只有一个人在修改文件一样。避免源程序这样一样了冲突。每个用户在使用仓库之前,首先要把仓库里的项使用仓库每个目文件下载到本地。用户做的任何修改首先都是在本地进下载修改本地行,然后用 cvs 命令进行提交,由 cvs 仓库管理员统一 修改。管理员命令仓库这样就可以做到跟踪文件变化,冲突控制等等。
由于CVS是建立在在原先 Unix 体系里很成熟的 SCCS 和 RCS 的体系建立由于基础上,所以CVS多是Linux(UNIX)系统中所使用,本文中服务linux 使用系统器端设置也是以Linux为例。
一、CVS服务器的安装
首先确认系统中是否安装CVS服务:
[root@localhost /]# rpm -qa|grep cvs
cvs-1.11.2-cvshome.7x.1
如果命令输出类似于上面的输出则说明系统已经安命令说明已经装有cvs,否则就需要从安装光盘中安装cvs的rpm包,或者到需要安装光盘http://www.cvshome.org下载。
1、建立 CVSROOT
目录,因为这里涉及到用户对CVSROOT里的文件读写的权cvsroot 这里目录限问题,所以比较简单的方法是建立一个组,然后再建立问题建立比较一个属于该组的帐户,而且以后有读写权限的用户都要属以后权限属于于该组。假设我们建一个组叫cvs,用户名是cvsroot。建组和用cvsroot 用户名假设户的命令如下
#groupadd cvs
#adduser cvsroot
生成的用户宿主目录在/home/cvsroot(根据自己的系统调整cvsroot home 宿主)
2、用cvsroot 用户登陆,修改 /home/cvsroot (CVSROOT)的权限,赋与cvsroot home 登陆同组人有读写的权限:
$chmod 771 . (或者770应该也可以)
注意:这一部分工作是按照文档说明做的,是否一注意说明文档定需要这样没有试验,我会在做试验后在以后版本的教程这样需要以后说得仔细一点。如果您有这方面的经验请提供给我,谢谢谢谢仔细方面。
3、建立CVS仓库,(仍然是 cvsroot 用户),用下面命令cvsroot 仓库命令:
$cvs -d /home/cvsroot init
4、以root身份登陆,修改 /etc/inetd.conf(使用 xinetd 的系统没xinetd inetd 使用有此文件)和 /etc/services
如果用的是 inetd 的系统,在 /etc/inetd.conf 里加入:
cvsserver stream tcp nowait root /usr/bin/cvs cvs -f --allow-root=/home/cvsroot pserver
说明:上面的行是单独一整行,/usr/bin/cvs 应该是你的单独说明应该cvs版本的命令路径,请根据自己的系统调整./home/cvsroot是你建cvsroot 命令 home立的CVSROOT的路径,也请根据上面建立目录的部分的内容做调cvsroot 建立内容整。
如果是使用 xinetd 的系统,需要在 /etc/xinetd.d/ 目录下创建文xinetd 需要使用件 cvspserver(此名字可以自己定义),内容如下:
# default: on
# description: The cvs server sessions;
service cvsserver
{
socket_type = stream
wait = no
user = root
server = /usr/bin/cvs
server_args = -f --allow-root=/cvsroot pserver
log_on_failure = USERID
only_from = 192.168.0.0/24
}
其中only_from是用来限制访问的,可以根据实际情况不访问可以情况要或者修改。修改该文件权限:
# chmod 644 cvspserver
在/etc/services里加入:
cvsserver 2401/tcp
说明:cvsserver 是任意的名称,但是不能和已有的服务重cvsserver 名称说明名,也要和上面修改 /etc/inetd.conf 那行的第一项一致。
5、添加可以使用 CVS 服务的用户到 cvs 组:
以 root 身份修改 /etc/group,把需要使用 CVS 的用户名加到 cvs用户名 group 需要 组里,比如我想让用户 laser 和gumpwu 能够使用 CVS 服务,那么修改gumpwu laser 使用以后的 /etc/group 应该有下面这样一行:
cvs:x:105:laser,gumpwu
在你的系统上GID可能不是105,没有关系。主要是要主要可能系统把laser和gumpwu用逗号分隔开写在最后一个冒号后面。当然,象gumpwu laser 最后RedHat等分发版有类似linuxconf这样的工具的话,用工具做这件事会linuxconf redhat 工具更简单些。
6、重起inetd使修改生效:
#killall -HUP inetd
如果使用的是 xinetd 的系统:
# /etc/rc.d/init.d/xined restart
然后察看cvs服务器是否已经运行:
[root@localhost /]# netstat -lnp|grep 2401
tcp 0 0 0.0.0.0:2401 0.0.0.0:* LISTEN 1041/xinetd
则说明cvs服务器已经运行。