Fedora 8配置CVS服务器

一、CVS服务器安装及初始配置

1、CVS服务器的安装
       安装RPM包:

    #yum install cvs* 

       查看cvs安装情况:  
    #rpm -qa|grep cvs

    #which cvs
    /usr/bin/cvs

Fedora 上的CVS依赖于xinetd服务,所以要安装xinetd:

    #yum install xinetd*

检查安装情况:

    #rpm -qa|grep xinetd
 

2、建立cvs用户组:
    #/usr/sbin/groupadd cvs

3、建立cvs组的cvsroot用户和所属的目录/home/cvsroot:
     
#/usr/sbin/useradd -g cvs -G cvs -d /home/cvsroot cvsroot

4、为cvsroot用户添加密码
     
#passwd cvsroot
  

5、改变 /cvsroot/ 的目录属性:

       因为是在root用户下间的该目录,他的属主和属组都是root,这里我们要将其属主改为cvsroot,属组改为cvs,保证cvs组的用户对该目录有相应的权限。

      #chown -R cvsroot.cvs  /home/cvsroot/  
     
#chmod –R 775 /home/cvsroot

6、 改变用户登陆身份
     
  # su cvsroot

       bash-3.2$

7、 设置全局变量CVSROOT

       #vim /etc/bashrc

       加入:

       export CVSROOT=/home/cvsroot:$CVSROOT

       检查一下变量设置:

       #echo $CVSROOT

    /home/cvsroot/ 


8、开始建立仓库:
     
#cvs –d /home/cvsroot/ init
 

9、建立CVS服务启动文件,使用xinetd方式:
      #[Crtl]+[d]   //切换到root用户身份
      #cd /etc/xinetd.d

      目录下已经存在一个名为cvs的文件,内容如下:

  1. # default: off
  2. # description: The CVS service can record the history of your source /
  3. #              files. CVS stores all the versions of a file in a single /
  4. #              file in a clever way that only stores the differences /
  5. #              between versions.
  6. service cvspserver
  7. {
  8.         disable                 = yes
  9.         port                       = 2401
  10.         socket_type       = stream
  11.         protocol               = tcp
  12.         wait                       = no
  13.         user                       = root
  14.         passenv               = PATH
  15.         server                   = /usr/bin/cvs
  16.         env                         = HOME=/var/cvs
  17.         server_args        = -f --allow-root=/var/cvs pserver
  18. #      bind                    = 127.0.0.1
  19. }

       复制这份文件为cvspserver,并改为如下:

       #cp cvs cvspserver

       #vim cvspserver

  1. # default: off
  2. # description: The CVS service can record the history of your source /
  3. #              files. CVS stores all the versions of a file in a single /
  4. #              file in a clever way that only stores the differences /
  5. #              between versions.
  6. service cvspserver
  7. {
  8.         disable                 = no
  9.         port                       = 2401
  10.         socket_type       = stream
  11.         protocol               = tcp
  12.         wait                       = no
  13.         user                       = root
  14.         passenv               = PATH
  15.         server                   = /usr/bin/cvs
  16.         env                         = HOME=/home/cvsroot
  17.         server_args        = -f --allow-root=/home/cvsroot pserver
  18. }


注:由于xinetd的server_args长度限制,当你想运行很多的单个仓库的时候,可以这么做

       
#vim cvspserver

  1. service cvspserver
  2. {
  3.          disable                 = no
  4.          port                       = 2401
  5.          socket_type       = stream
  6.          protocol               = tcp
  7.          wait                       = no
  8.          user                       = root
  9.          passenv               = PATH
  10.          server                   = /home/cvsroot/cvs.run
  11.          env                        = HOME=/home/cvsroot
  12.         
  13. }
       然后编写启动CVS的脚本cvs.run

       #vim /cvsroot/cvs.run

  1. #!/bin/bash
  2. /usr/bin/cvs -f --allow-root=/home/cvsroot/ pserver
  3.     
        #chmod 755 /home/cvsroot/cvs.run

10、加入cvs服务
   
     #vim /etc/services
        在文件的最后加入以下两行:
        cvspserver 2401/tcp #pserver cvs service
        cvspserver 2401/udp #pserver cvs service


11、重启cvs服务
      
#/etc/init.d/xinetd restart
     
12、检查cvspserver服务是否已经启动
      
#netstat -l |grep cvspserver
       应该有如下结果:
        tcp   0    0            *:cvspserver           *:*               LISTEN


二、CVS服务的用户管理:

上面我们已经建立了CVS仓库,下面我们给仓库建立cvs用户。
13、创建可以登陆cvs服务器的用户名和密码
      
#su cvsroot
       $su
        口令:  
        #vim /home/cvsroot/CVSROOT/passwd

        为新用户my_name和your_name设置密码,加入以下两行:
       
my_name:*********:cvsroot
       
your_name:*************:cvsroot
        这两个文件的意思是有my_name和your_nameg两个cvs用户,同时拥有cvsroot的使用权限,登陆后  的权限是cvsroot权限。
        注意:这里的cvs用户和系统用户是不同的。

14、 *********为密码,由以下文件生成

       
#vim /home/cvsroot/passwdgen.pl
  1. #!/usr/bin/perl
  2. srand (time());
  3. my $randletter = "(int (rand (26)) + (int (rand (1) + .5) % 2 ? 65 : 97))";
  4. my $salt = sprintf ("%c%c", eval $randletter, eval $randletter);
  5. my $plaintext = shift;
  6. my $crypttext = crypt ($plaintext, $salt);
  7. print "${crypttext}/n";
          #chmod a+x /home/cvsroot/passwdgen.pl
         这个文件是功能是给你想设的密码加密,变为暗码。如果你想生成一个密码是“123456”,则:
        
# ./passwdgen.pl “123456”
         回车即可得到加密暗码:ZaNGzWEtXCZZI , 用其替换passwd文件中的********

15、cvs的服务器端现在已经全部安装完成了
         最后,试着登陆一下:
        
#cvs -d :pserver:my_name@192.168.1.111:/home/cvsroot login
          敲入命令回车后提示输入my_name的密码,你按照自己设置的密码输入,如果没有什么错误信息出现就是成功了。

-------------------------------------------
可能出现的错误:
-------------------------------------------
CVS pserver安装好后,连接的时候,会显示错误信息:
cvs [login aborted]: reading from server: Connection reset by pserver...
这个问题的原因很可能有:

1. xinetd.d的配置上:

    在cvspserver文件中,port =2401 没有设置
或者
    server =  /usr/local/bin/cvs这个cvs的执行路径设置错了(正确的路径可以通过运行#which cvs命令得到)
或者
    env = /var/cvs没有改成你设置好的目录,我这里是/home/cvsroot

2. cvspsever服务没有添加进/etc/services中


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值