浏览 3201 次
锁定老帖子 主题:AS4 CVS使用配置
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-03-13
首先确认系统中是否安装CVS服务: [root@localhost /]# rpm -qa|grep cvs cvs-1.11.2-cvshome.7x.1 如果命令输出类似于上面的输出则说明系统已经安装有cvs,否则就需要从安装光盘中安装cvs的rpm包,或者到http://www.cvshome.org下载。 1、建立 CVSROOT 目录,因为这里涉及到用户对CVSROOT里的文件读写的权限问题,所以比较简单的方法是建立一个组,然后再建立一个属于该组的帐户,而且以后有读写权限的用户都要属于该组。假设我们建一个组叫cvs,用户名是cvsroot。建组和用户的命令如下 #groupadd cvs #useradd -g cvs -G cvs -d /home/cvsroot cvsroot 生成的用户宿主目录在/home/cvsroot(根据自己的系统调整) 2、建立CVS仓库,用cvsroot 用户登陆,用下面命令: $cvs -d /home/cvsroot init 3、仍然是 cvsroot 用户,修改 /home/cvsroot (CVSROOT)的权限,赋与同组人有读写的权限: $chmod 775 -R /home/cvsroot 4、用root登录,加入cvs服务(我的redhath7.3缺省就有cvs服务,所以不用加) vi /etc/services cvspserver 2401/tcp #pserver cvs service cvspserver 2401/udp #pserver cvs service cvs服务由inted来唤起,因此需要改动inetd提供的服务,如果你的redhat使用的是inetd 方式则在文件/etc/inetd.conf中加入如下的内容:cvspserver stream tcp nowait root /usr/bin/cvs cvs --allow-root=/home/cvsroot pserver 我的redhat7.3使用的是xinetd方式,所以在xinetd.d目录下添加需要启动的服务: cd /etc/xinetd.d vi cvspserver 文件内容: service cvspserver { disable = no flags = REUSE socket_type = stream wait = no user = cvsroot server = /usr/bin/cvs server_args = -f --allow-root=/home/cvsroot pserver log_on_failure += USERID } 重新启动inetd或者xinetd: /etc/rc.d/init.d/xinetd restart 检查cvspserver服务是否已经启动 [root@localhost /]# netstat -lnp|grep 2401 tcp 0 0 0.0.0.0:2401 0.0.0.0:* LISTEN 1041/xinetd 则说明cvs服务器已经运行。 二、管理CVS服务器 服务器可以用了,现在大家最关心的就是如何管理服务器,比如,我想让一些人有读和/或写 CVS 仓库的权限,但是不想给它系统权限怎么办呢? 不难,在 cvs 管理员用户(在我这里是 cvsroot 用户)的家目录里有一个 CVSROOT 目录,这个目录里有三个配置文件,passwd, readers, writers,我们可以通过设置这三个文件来配置 CVS 服务器,下面分别介绍这几个文件的作用: passwd:cvs 用户的用户列表文件,它的格式很象 shadow 文件: {cvs 用户名}:[加密的口令]:[等效系统用户名] readers:有 cvs 读权限的用户列表文件。就是一个一维列表。在这个文件中的用户对 cvs只有读权限。 writers:有 cvs 写权限的用户的列表文件。和 readers 一样,是一个一维列表。在这个文件中的用户对 cvs 有写权限。 上面三个文件在缺省安装的时候可能都不存在,需要我们自己创建,好吧,现在还是让我们用一个例子来教学吧。假设我们有下面几个用户需要使用 cvs: laser, gumpwu, henry, betty, anonymous。 其中 laser 和 gumpwu 是系统用户,而 henry, betty, anonymous 我们都不想给系统用户权限,并且 betty 和 anonymous 都是只读用户,而且 anonymous 更是连口令都没有。 然后编辑 cvs 管理员家目录里 CVSROOT/passwd 文件(cvsroot用户),加入下面几行: laser:$xxefajfka;faffa33:cvsroot gumpwu:$ajfaal;323r0ofeeanv:cvsroot henry:$fajkdpaieje:cvsroot betty:fjkal;ffjieinfn/:cvsroot anonymous::cvsroot 注意:上面的第二个字段(分隔符为 :)是密文口令。 密码可以有以下方法生成 vi /home/cvsroot/passwdgen.pl 文件内容: #!/usr/bin/perl srand (time()); my $randletter = "(int (rand (26)) + (int (rand (1) + .5) % 2 ? 65 : 97))"; my $salt = sprintf ("%c%c", eval $randletter, eval $randletter); my $plaintext = shift; my $crypttext = crypt ($plaintext, $salt); print "${crypttext}\n"; 如果需要密码为:some,则敲入: ./passwdgen.pl some (注意passwdgen.pl要先设为可执行chmod +x /home/cvsroot/passwdgen.pl) 回车即可得到加密密码,用其替换passwd文件中的passwd部分就可以了 编辑 readers 文件,加入下面几行: anonymous betty 编辑 writers 文件,加入下面几行: laser gumpwu henry 注意:writers中的用户不能在readers中,要不然不能上传更新文件。 对于使用CVS的用户要修改它的环境变量,例如laser用户的环境变量,打开/home/laser(laser的宿主目录)下的.bash_profile文件,加入 CVSROOT=/home/cvsroot export CVSROOT 用laser登陆就可以建立CVS项目,如果要root使用,可以修改/etc/profile文件。 现在我们各项都设置好了,那么怎么用呢,我在这里写一个最简单的(估计也是最常用的)命令介绍: 首先,建立一个新的CVS项目,一般我们都已经有一些项目文件了,这样我们可以用下面步骤生成一个新的CVS项目: 进入到你的已有项目的目录,比如叫 cvstest: $cd cvstest 运行命令: $cvs import -m "this is a cvstest project" cvstest v_0_0_1 start 说明:import 是cvs的命令之一,表示向cvs仓库输入项目文件。 -m参数后面的字串是描述文本,随便写些有意义的东西,如果不加 -m 参数,那么cvs会自动运行一个编辑器(一般是vi,但是可以通过修改环境变量EDITOR来改成你喜欢用的编辑器。)让你输入信息,cvstest 是项目名称(实际上是仓库名,在CVS服务器上会存储在以这个名字命名的仓库里。) v_0_0_1是这个分支的总标记。没啥用(或曰不常用。) start 是每次 import 标识文件的输入层次的标记,没啥用。 这样我们就建立了一个CVS仓库了。 建立CVS仓库的文件夹应该是“干净”的文件夹,即只包括源码文件和描述的文件加,而不应该包括编译过的文件代码等! 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |