在Linux7.3、Linux9以及Linux ES3上直接内置了cvs,以下主要是需要配置服务器端:
1) 查看是否安装cvs#rpm -qa | grep cvs
注:一般安装在/usr/bin/cvs,如果未安装到
www.cvshome.org下载一个最新的rpm安装即可
2) 建立cvs用户组,便于管理cvs用户
#groupadd cvs
3) 建立cvs组的cvsroot用户和所属的目录
#useradd -g cvs -G cvs -d /home/cvsroot cvsroot
4) 为cvsroot用户添加密码
#passwd cvsroot
5) 改变/home/cvsroot的目录属性
#chmod 775 /home/cvsroot
6) 初始化cvs源代码库,此操作生成目录/home/cvsroot/CVSROOT,其下为一些初始化文件
#cvs -d /home/cvsroot init
7) 创建可以登陆cvs服务的用户及密码,需要创建文件passwd
#vi /home/cvsroot/CVSROOT/passwd
weiqiong:xxxxxx:cvsroot
chenxu:xxxxxx:cvsroot
此文件的意思是weiqiong和chenxu两个用户可以登陆cvs服务器,登陆后其权限为用户cvsroot的权限
注:cvs用户和服务器用户是可以不一样的
8) xxxxxx为密码,由以下文件生成:
#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";
将文件的属性修改为可以执行: chmod 755 passwdgen.pl
9) 如果需要密码为:test,则敲入:
#./passwdgen.pl "test"
回车即可得到加密密码,用其替换passwd文件中的xxxxxx
10) 加入cvs服务(如果缺省有cvs服务,就可以不用加)
#vi /etc/services
cvspserver 2401/tcp #pserver cvs service
cvspserver 2401/udp #pserver cvs service
11) 使用的是xinetd方式,所以在xinetd.d目录下添加需要启动的服务:
#cd /etc/xinetd.d
#vi 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_failure += USERID
}
注:如果有多个repository的话,按照下面的方式修改:
server_args = -f --allow-root=/home/cvsroot --allow-root=/home/ncrroot pserver
然后添加对应的用户ncrroot,让该用户的根是/home/ncrroot
passwd的最后为新建的用户名ncrroot
12) 重新启动xinetd:
#/etc/rc.d/init.d/xinetd restart
13) 检查cvspserver服务是否已经启动
#netstat -l | grep cvspserver
tcp 0 0 *:cvspserver *:* LISTEN
14) 测试:
cvs -d :pserver:xiajx@192.168.100.92:/home/cvsroot login
敲入命令回车后提示输入xiajx的密码,你按照自己设置的密码输入
如果没有什么错误信息出现就是成功了(我的机器IP地址是192.168.100.92,也可以用localhost).
PS:如果是迁移原有cvs的repository的话,只需要将原有的repository整个拷贝到/home/cvsroot中即可.