|
|
现将在Linux系统搭建CVS服务器的过程做一下总计,开始百度一下,资料很多,于是就按照网上说的进行操作,总共分七步骤:
一、查看LInux操作系统上是否安装了CVS,命令如下:
[root@localhost /]# rpm –q cvs
如果没有安装,则可以在网上下载cvs软件的rpm包(可以http://rpm.pbone.net/去找),也可以在redhat的安装光盘中找。然后运行如下命令来安装:
[root@localhost /]# rpm –ivh cvs-1.11.2-10.rpm
二、创建CVS用户组及用户,命令如下:
[root@localhost /]# groupadd cvs (创建一个名为cvs的用户组) [root@localhost /]# useradd -g cvs cvsroot(创建cvsroot用户并将此用 户添加到cvs群组中) [root@localhost /]# passwd cvsroot (设置cvsroot用户密码)
三、创建CVS启动脚本,命令如下:
[root@localhost /]# vi /etc/xinetd.d/cvspserver
内容如下:
service cvspserver { disable = no flags = REUSE socket_type = stream wait = no user = root server = /usr/bin/cvs server_args = -f --allow-root=/home/cvsroot pserver log_on_success += USERID log_on_failure += USERID }
注:其中,server指定CVS可执行文件路径,默认安装就是/usr/bin/cvs,server_args指定源代码库路径及认证方式等,例子中把源代码存放在/home/cvsroot的主目录中,也可以另外指定路径,但必须注意权限设置,pserver是密码认证方式,这种方式的安全性要差一些,但操作起来比较简单。请注意每行等号左右都有一个空格,否则无法启动服务。
四、重新启动xinetd服务,命令如下:
[root@localhost /]# service xinetd restart
查看是否启动:
[root@localhost /]# netstat –lnp | grep 2401
屏幕显示:
tcp 0 0 0.0.0.0:2401 0.0.0.0:* LISTEN 1643/xinetd
说明已经正常启动,如果没有请做如下检查:
<1>请检查vi /etc/xinetd.d/cvspserver文件中的server = /usr/bin/cvs
路径和实际执行文件所在位置是否一致;(一般这步骤即可解决该问题)
<2>请重新检查配置过程是否有错误或者遗漏;
<3>最后还必须检查防火墙的设置,把2401端口打开。
五、初始化cvs服务器环境,命令如下:
[root@localhost /]# cvs -d /cvstest init
初始化成功后,会在/home/cvsroot目录下创建一个CVSROOT的目录,这样/home/cvsroot就成为CVS服务器的根目录了。
六、CVS服务的用户管理,命令如下
[root@localhost /]# vi /home/cvsroot/CVSROOT/password.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 $user = shift; my $plaintext = shift; my $crypttext = crypt ($plaintext, $salt); print "$user:${crypttext}:cvsroot"; print "\n";
网上也有类似的shell,执行password.pl创建用户
见附件"password.pl
如果我要创建用户"liujt",命令为“123456”需要执行以下命令:
[root@localhost /]# chmod +x password.pl //增加执行脚本的权限 [root@localhost /]#./password.pl liujt123456>>home/cvsroot/CVSROOT/passwd
七、向CVS服务器中导入新的工程,命令如下:
假设工程ant1在/opt目录下,首先进入工程所在位置,
[root@localhost /]# cd /opt/ant1
执行如下命令,将ant1工程导入到CVS服务器中,
[root@localhost /]# cvs import –m “init ant1 project” ant1 tengtu start
说明:
import 是cvs的命令之一,表示向cvs仓库输入项目文件。
-m参数后面的字串是描述文本,对项目进行描述,如果不加 -m 参数,那么cvs会
自动运行一个编辑器(一般是vi,但是可以通过修改环境变量EDITOR来改成你喜
欢用的编辑器)让你输入信息,ant1 是项目名称(实际上是仓库名,在CVS服务
器上会存储在以这个名字命名的仓库里)
tengtu是这个厂商标记。
start 是每次 import 标识文件的输入层次的标记
CVS服务器已经搭建完毕,当用eclipse工具将CVS源代码下载到本地时,发现工程中class文件显示为修改的状态(出现">"这样的符号),但是我从公司才CVS服务器上下载工程可不是这样的。经研究发现class文件没有必要在CVS服务器上时时同步,所以更改将工程导入CVS服务器中,在eclipse中选择工程,右击点击“Team”—》“Share Project”,然后选择自己的CVS服务器,点击"next"按钮,将源代码导入到CVS服务器中,这种导入方法,可以不必对源码进行时时同步。
这个问题解决了,可是还有个问题就是我搭建的CVS服务器不能对用户进行权限管理。从网上搜了搜发现使用CVSACL能够进行CVS权限访问控制。见cvs(cvsacl)从介绍到搭建全程跟踪3 |
|