2)如果我们在root用户(或者其他用户,但必须保证该用户对于存放module的目录有写的权限)下测试,checkout出这一个module,可以执行如下:
debian:/home/usbprj# cvs -d /home/cvsroot checkout usbprj
cvs checkout: Updating usbprj
U usbprj/Makefile
U usbprj/Module.symvers
U usbprj/test.c
U usbprj/usb-skeleton.c
说明在本地可以checkout出来,而且他会自动在当前目录下创建以该module名为名的目录项,不管你checkout出来的是一个源码文件还是整个module。我这里checkout出来的module路径为/home/usbprj/usbprj/下。
4.创建登录CVS服务器的用户和密码
1)在/home/cvsroot/CVSROOT/下创建passwd文件,并编辑内容如下:
cvSUSEr1:*****:cvsroot
cvsuser2:*****:cvsroot
这个文件的意思是有cvsuser1和cvsuser2两个登录cvs服务器的用户,登陆后的权限是cvsroot权限,即第三个字段指定。
注意:这里的新建用户的两个新建登录cvs服务器的用户和系统用户是不同的,这两个用户不能用来登录系统,只能登录cvs服务器。这里我们默认不允许系统用户登录cvs服务器。
2)其中,passwd文件中每行的第二个字段“*****”为用户cvsuser1和cvsuser2密码的加密口令。可以通过下面文件对用户密码加密。
文件名:passwdgen.pl.该文件是perl的脚本。必须保证系统安装了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}\n";
为该文件添加可执行权限,
debian:~$ chmod +x passwdgen.pl
用户cvsuser1和cvsuser2用户生成加密口令:
debian:~$ ./passwdgen.pl cvsuser1
ZGzWKlE1mv4EY
debian:~$ ./passwdgen.pl cvsuser2
LFfpGaDMC/Cj6
用法:passwdgen.pl yourpasswd. 其中,yourpasswd即你所需要设定的密码。我这里给我的两个用户的密码和用户名同名,呵呵,为了方便。其中生成的加密口令为13个字符,是由[0-9][A-Z][a-z][.][/]组成。把生成的加密口令替换到passwd文件中相应的“*****”字段即可。
5.设置开机启动CVS服务
我们这里使用xinetd启动,如果系统没有安装xinetd的话,安装之。
1)检查/etc/services中,cvspserver是否开启。cvspserver是远程登录CVS服务器时对用户的验证方式。
debian:~$ cat /etc/services | grep cvspserver
cvspserver 2401/tcp # CVS client/server operations
cvspserver 2401/udp
这说明我的系统已打开该服务。如果最后两行前面有“#”字符,把他删除就可以了。
2)创建cvspserver文件
切换至root用户下:
debian:~# cd /etc/xinetd.d/
debian:/etc/xinetd.d# touch cvspserver
编辑该文件,内容如下:
service cvspserver
{
disable = no
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
}
其中,--allow-root=/home/cvsroot即仓库所在目录。
注意:每行的第一个"="左右两侧要有一个空格。