LiangShuang's ...

I'm not a programmer...

CentOS下CVS配置

由于实验室的项目需要进行版本控制,正好有台空闲的CentOS,可以拿来作服务器,于是就搞了一下,配置过程如下:

    环境:

  • OS:CentOS 5.5
  • Kernel:Linux hit-centos 2.6.18-194.32.1.el5 #1 SMP
  • CVS Version:Concurrent Versions System (CVS) 1.11.22 (client/server)

1. 首先确认CVS是否安装:

    rpm -qa | grep cvs,如果出现 cvs-1.11.22-7.el5就说明CVS已经在主机上安装了。

2. 建立CVS管理所对应的用户和组:

    在centos下这个过程有个小插曲,首先如果终端下直接输入sudo groupadd的话会提示出错,"sudo: groupadd: command not found",然后切换到root用户su,仍然是找不到命令,Google了一下centos的wiki上(http://wiki.centos.org/TipsAndTricks/BecomingRoot)讲得还是很清楚的,当我们想要change为root身份时su就足够了,但是不会获得其环境配置信息,因此当执行groupadd或ifconfig时就会提示找不到命令,正确的切换命令应该是su -,the trailing dash is the tricky. 之后就可以新建组groupadd cvs,然后添加一个新用户到工作组useradd -g cvs -G cvs -d /home/cvs-wsn hit-wsn,指定用户密码passwd hit-wsn

3. 以hit-wsn进行CVS的相关操作,初始化cvs源代码库,此操作生成目录/home/cvs-wsn/wsn-opdk/CVSROOT,其下为一些初始化文件,wsn-opdk为CVS管理的工程目录:

    su hit-wsn

    mkdir wsn-opdk

    cvs -d /home/cvs-wsn/wsn-opdk/ init,注意这里的路径为绝对路径。

4. CVS server的配置文件:

    sudo vim /etc/xinetd.d/cvspserver,内容如下:

    service cvspserver
    {
        flags           = REUSE
        socket_type     = stream
        wait            = no
        user            = hit-wsn
        protocol        = tcp
        server          = /usr/bin/cvs
        server_args     = -f --allow-root=/home/cvs-wsn/wsn-opdk pserver
        log_on_failure += USERID
        disable         = no
    }

5. 检查cvsperver服务:

    cat /etc/services | grep cvspserver
    结果显示 cvspserver      2401/tcp                        # CVS client/server operations
             cvspserver      2401/udp                        # CVS client/server operations

说明服务已存在。

6. 重启xinetd服务:

    sudo /etc/init.d/xinetd restart

7. 再次检查cvspserver服务是否已经启动:

    netstat -l | grep cvspserver,结果为"tcp 0      0 *:cvspserver    *:*                         LISTEN"

8. 添加CVS登录用户:

    在刚才新建的CVS代码库的CVSROOT目录下新建一个passwd文件,htpasswd -c passwd fc14,将新建一个叫做passwd的文件并且提示输入密码,密码经过md5加密放入passwd文件.以后新加用户不用-c,其中fc14是我的CVS登录用户名,

9. 修改passwd文件,将CVS用户于系统用户对应:

    每个用户那行最后添加:cvsroot ,然后去掉每行第二个冒号以后的所有内容,并添上字符串cvsroot

    我这里的系统用户为hit-wsn,所以就在后面添加了:hit-wsn,如:fc14:qfFRYXwG3SOaQ:hit-wsn
10. 这里我把方护墙和selinux都禁用了,根据以前的经验selinux会对此进行限制:

    vim /etc/sysconfig/selinux SELINUX=enforcing change to SELINUX=disabled

11. 测试一下:

    测试是在在局域网中的一台安装有CVS client的机器上的,就是我的fedora 14上,首先设置CVSROOT环境变量,在.bashrc下添加如下内容:

    export CVSROOT=:pserver:fc14@$(server_ipaddr):2401:/home/cvs-wsn/wsn-opdk/,其中psrver为协议,fc14是我刚刚添加的登录用户名,后面是CVS服务器的IP地址和端口号,最后是仓库的路径。

    输入密码登录成功之后就可以 cvs add file,cvs commit file了,我之后把项目工程放到了wsn-opdk下了,cvs checkout top_dir成功!

做得过程中参考了如下链接:

    http://blog.donews.com/zzw45/index.php/2007/05/centos4-5-%E4%B8%8A%E9%85%8D%E7%BD%AE-cvs/

    http://wiki.centos.org/TipsAndTricks/BecomingRoot