随笔-49  评论-67  文章-27  trackbacks-0

1 准备

在安装之前,首先通过运行下面命令查看系统上是否已经安装了CVS

root# rpm –q cvs

这是我系统上输出的内容:

cvs-1.11.19-8

说明系统上已经安装了CVS,要卸载再安装新的版本或者重新安装。可以输入如下命令进行卸载:

root# rpm –e cvs

这时系统输出如下提示:

warning: /etc/xinetd.d/cvs saved as /etc/xinetd.d/cvs.rpmsave

这是什么系统已经将CVS卸载,并将CVS的配置文件/etc/xinetd.d/cvs保存为副本文件/etc/xinetd.d/cvs.rpmsave

2 安装

作为管理员用户登录,运行下面命令安装:

root# cd /home/soft/Fedora4_x86_64_RPMS/

root# rpm –ivh cvs-1.11.19-8.x86_64.rpm

系统的输出如下:

warning: cvs-1.11.19-8.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 4f2a6fd2

Preparing...                ########################################### [100%]

   1:cvs                    ########################################### [100%]

3 配置

3.1 创建组和用户

首先创建一个cvs组和一个cvsroot用户:

root# groupadd cvs

root# useradd –g cvs –p cvsroot cvsroot

3.2 设置权限

CVS创建一个根目录来存放代码,这里我们使用的是/home/globus/cvsroot最为我们的根目录。然后为该目录设置相应的读写权限和所有权限。

root# mkdir /home/globus/cvsroot

root# -R chown cvsroot.cvs /home/globus/cvsroot

root# -R chmod 771 /home/globus/cvsroot

3.3 添加系统变量CVSROOT

设置CVSROOT系统变量用来记录CVS的根目录,这样可以方便以后我的使用。编辑/etc/profile文件,添加下面一行:

export CVSROOT=/home/globus/cvsroot

3.4 设置CVS服务端口

查看/etc/services文件,看是否有如下两行代码。如果没有需要加入。不过通常在安装CVS的时候会自动加入。

cvspserver      2401/tcp              # CVS client/server operations

cvspserver      2401/udp              # CVS client/server operations

3.5 修改CVS配置文件

修改/etc/xinetd.d/cvs文件,该文件是CVS的配置文件。

 

# default: off

# description: The CVS service can record the history of your source

#              files. CVS stores all the versions of a file in a single

#              file in a clever way that only stores the differences

#              between versions.

service cvspserver

{

        disable                 = yes

        port                    = 2401

        socket_type             = stream

        protocol                = tcp

        wait                    = no

        user                    = root

        passenv                 = PATH

        server                  = /usr/bin/cvs

        env                     = HOME=/var/cvs

        server_args             = -f --allow-root=/var/cvs pserver

#       bind                    = 127.0.0.1

}

修改后的结果如下,其中黑体字是表示需要修改的地方。

# default: off

# description: The CVS service can record the history of your source

#              files. CVS stores all the versions of a file in a single

#              file in a clever way that only stores the differences

#              between versions.

service cvspserver

{

        disable            = no

        port                    = 2401

        socket_type             = stream

        protocol                = tcp

        wait                    = no

        user                    = root

        passenv                 = PATH

        server                  = /usr/bin/cvs

#      env                     = HOME=/var/cvs

        server_args    = -f --allow-root=/home/globus/cvsroot pserver

#       bind                    = 127.0.0.1

}

很多网上的文章介绍时说需要建立/etc/xinetd.d/cvspserver文件但是经过我的试验对我们安装的CVS版本来说是不需要的。并且这样作是不起任何作用的。

3.6 添加CVS的用户

3.6.1 CVS中添加系统用户(不推荐)

接下来,需要把使用CVS的用户添加到当前的cvs组中。可以通过修改/etc/group文件或者使用命令的方式进行。

a.通过编辑文件:打开文件/etc/group,在该文件下找到类似下面的一行代码:

cvs:x:516:

其中数字可能不是516,这个跟你系统有关。在这里,我们可以在“冒号”后面添加允许使用该CVS的系统用户,多个用户可以使用“逗号”分开。看起来类似下面的代码:

cvs:x:516:czb,huangqin,sqh,wangjian,wtj

b.通过命令:

root# usermod –G cvs czb

注:我们不推荐使用这种方法。因为遇到一个问题:如果用户A导入了一个模块,而其它用户无权checkout。这里可能是我们配置上出了问题,但是采用下面的方法可以解决。

3.6.2 CVS中添加非系统用户

我们这里假设要向CVS系统中添加一个grid用户,该用户的口令是test。那么,可以通过下面的步骤进行添加。

1.编写passwdgen.pl文件

首先,编写Perl脚本文件:

#!/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} ";

该文件用来生成一个经过加密的口令。

为了方便地让CVS系统中的所有用户生成自己的口令,建议为该文件添加执行权限。并且可以将该文件放在大家有权限访问的目录下。

2.生成用户口令

然后,为使用CVS系统的用户生成加密的口令。处于安全的考虑,我们可以让CVS用户通过上面的脚本文件生成自己的加密口令。并将这个加密口令发送给管理员。

运行下面的命令,为grid户生成加密的口令:

user$ ./passwdgen.pl test

IIjgs2WRpImsU

这时,用户可以将生成的加密口令“IIjgs2WRpImsU”发送给CVS管理员。

3.编写passwd文件

该文件用来存放CVS系统的用户的信息,位于$CVSROOT/CVSROOT目录下面。它的格式如下

username:userpwd:sysuser

l           username:用来访问CVS系统的用户名

l           userpwd:收到的用户的加密口令

l           sysuser:操作系统中存在的有权访问$CVSROOT目录的用户,这里是cvsroot

我们得到的结果如下:

grid:IIjgs2WrpImsU:cvsroot

此时,我们就完成了向系统中添加grid用户的过程,并且该用户的口令是test

3.7 添加模块

通过编辑$CVSROOT/CVSROOT目录下面的modules文件为CVS建立模块。

CVS系统中,存在三种形式的模块:alias模块、regular模块和ampersand模块。它们的不同在于它们将repository中的文件映射到工作目录(本地)中文件的方式不一样。

l           alias模块

这是最简单的一种,其格式如下:

mname –a aliases...

其中,mname指的是模块名,而aliases指的是其它的模块名或者路径名。

l           regular模块

该模块的书写格式如下:

mname [options] dir [files...]

该模块定义所有位于dir目录下的文件到mname代表的模块中。其中,dir是参照$CVSROOT的一个相对路径。此外,如果后面跟上具体的files,则表示将dir目录下的files文件加入到模块中。

l           ampersand模块

该模块的书写格式如下:

mname [options] &module...

这样可以引用其它的module

这里,我们使用最为简单的alias模块,定义如下:

grid grid

这样,我们就可以在Wincvs中看到grid模块了。

3.8 重启CVS

最后,重新启动CVS服务,确保刚才的修改被执行。

root# /etc/rc.d/init.d/xinetd restart

如果系统输入以下信息,表示服务重新启动了。

Stopping xinetd:                                           [  OK  ]

Starting xinetd:                                           [  OK  ]

4 测试

接下来我们可以在Windows下用wincvs客户端进行登录进行测试。

注:这里面需要注意的是,设置wincvsCVSROOT时应该是这样:

wtj@202.115.30.191:/home/globus/cvsroot

/home/globus/cvsroot后面没有“/”。

posted on 2005-10-16 16:34 思考 阅读(3485) 评论(0)  编辑  收藏 所属分类: 其他技术文章Linux技术

只有注册用户登录后才能发表评论。


网站导航: