查看你的操作系统上是否安装了CVS:
#> rpm -qa|grep cvs
1. 安装cvs包。
rpm -ivh /mnt/cdrom/RedHat/RPMS/cvs-1.11.2-10.i386.rpm
2. 检查/etc/service中是存在含下面两行内容,如果不存在,则加入进去。
cvspserver 2401/tcp # CVS client/server operations
cvspserver 2401/udp # CVS client/server operations
3. 创建一个目录作为cvsserver的根目录。
mkdir -p /cvs/cvsroot
4. 编辑文件/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=/cvs/cvsroot pserver
log_on_failure += USERID
}
注:
a) 这里-allow-root参数的值应该和前面创建的cvsserver的根目录一致。否则后面login时会出现: no such repository的错误。
b) flags的标志是用于setsockopt设置socket的一些属性,这里的REUSE表示socket关闭后可以立即重用,而不用等到超时后才能重用。
5. 重新起动xinetd服务:
service xinetd restart
6. 测试cvs 服务器是否正常起动了:
telnet localhost cvspserver
若连接成功,则表明正常起动了。
7. 初始化cvs 服务器。
cvs -d /cvs/cvsroot/ init
8. 进入cvs根目录,接下来做些基本设置,后面的步骤都在该目录中进行的。
cd /cvs/cvsroot/CVSROOT/
9. 创建passwdgen.pl,并让其具有可执行的权限(建成後#>chmod a+x /cvsroot/passwd.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";
10. 在系统中建立一个cvs用用户组。
groupadd cvs
11. 在系统中增加一个用户:
useradd -g cvs -G cvs cvsroot
并用passwd修改初始密码。
12. 创建一个名为passwd的文件,它是cvs用来作为登录验证用的,其格式如下:
cvs用户名:密码:对应系统中的用户名
密码是用前面创建的passwdgen.pl加密过的。如果你想生成一个密码是“123456”,则:#> /cvsroot/passwd.pl “123456”
如:
cvsroot:oBEprU5CtgrpU:cvsroot
jim:oBEprU5CtgrpU:cvsroot
mike:oBEprU5CtgrpU:cvsroot
这里有三个cvs用户: cvsroot、jim和mike,都对应于系统用户cvsroot。
13. 创建一个文件readers,可以在里面列出只读用户。如:
mike
14. 创建一个文件writers,可以在里面列出读写用户。如:
jim
15. 修改cvs根目录的所有者和权限。
chown cvsroot.cvs /cvs/cvsroot/ -R
chown 775 /cvs/cvsroot/ -R
(#> chmod –R 770 /cvsroot)
16. 设置CVSROOT环境变量,登录cvs作为操作。
export CVSROOT=:pserver:jim@localhost:/cvs/cvsroot
cvs login
(输入jim的密码)
或者
#> cvs -d :pserver:trotter@192.168.1.200:/cvsroot/project1 login
17. OK了,我们import一个项目测试一下:
cd /root/lab/gui/glib-2.8.0
cvs import -m "for test purpose only" glib init start
cvs [login aborted]: unrecognized auth response from localhost: cvs pserver: cannot open /repository/CVSROOT/config: Permission denied
解決:以root登陆,然后: setenforce 0