Linux下CVS服务器的安装与配置

CVS是目前比较流行与优秀的版本管理与控制工具,它深受大多数开发人员与系统管理者的喜爱,同时也是用来管理其它日常文档的强有力工具。下面,小编就对CVS服务器的安装、配置与使用方法进行简单、扼要的介绍,以帮助大家尽快的使用CVS来进行一些版本的管理与控制工作。

http://ximbiot.com/

http://www.cvshome.org


安装cvs后服务器和客户端就都安装了,主要是需要配置服务器端:  
  1.查看是否安装cvs(我的redhat7.3缺省是装了的)  
    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";  
   
  9.如果需要密码为:some,则敲入:  
    passwdgen.pl   "some"  
    回车即可得到加密密码,用其替换passwd文件中的xxxxxx  
   
  10.加入cvs服务(我的redhath7.3缺省就有cvs服务,所以不用加)  
    vi   /etc/services  
    cvspserver   2401/tcp   #pserver   cvs   service  
    cvspserver   2401/udp   #pserver   cvs   service    
   
  11.cvs服务由inted来唤起,因此需要改动inetd提供的服务,如果你的redhat使用的是inetd   方式则在文件/etc/inetd.conf中加入如下的内容:cvspserver   stream   tcp   nowait   root   /usr/bin/cvs   cvs   --allow-root=/home/cvsroot   pserver  
   
      我的redhat7.3使用的是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  
      }  
  12.重新启动inetd或者xinetd:  
    /etc/rc.d/init.d/xinetd   restart  
   
  13.检查cvspserver服务是否已经启动  
    netstat   -l   |grep   cvspserver  
    应该有如下结果:  
    tcp   0   0   *:cvspserver     *:*   LISTEN  
   
  14.试用:  
      cvs   -d   :pserver:weiqiong@202.204.114.37:/home/cvsroot   login  
      敲入命令回车后提示输入weiqiong的密码,你按照自己设置的密码输入,如果没有什么错误信息出现就是成功了(我的机器IP地址是202.204.114.37,也可以用localhost)  


  1、CVS服务器的安装

  CVS服务器版可以从网上的很多地方下载到,也可以到CVS的官方网站进行下载。根据你所使用的系统,下载相应的版本,然后进行安装。因为当前大部分人是在Linux下使用CVS服务器进行版本管理,并且Redhat Linux是目前最流行的一个Linux发行版之一,所以本文将主要基于Redhat Linux进行介绍。

  首先下载CVS服务器的rpm包,当然也可以下载其它方式的包如源程序包,这也是Linux的一个优点之一。然后采用以下命令进行安装:

  rpm -ivh cvs-1.10.8-3.i386.rpm

  2、配置/etc/services文件

  安装完之后的第一件事就是要配置CVS服务器的配置文件,使其能正常的工作。首先在services文件中添加cvspserver,使其成为Linux的一种服务,也就是cvs服务器例程的入口,配置如下:

  cvspserver 2401/tcp # cvs client/server operations

  cvspserver 2401/udp # cvs client/server operations

  3、配置xinetd,用xinetd来启动CVS服务器

  进入到/etc/xinetd.d/目录,然后编辑一个文本文件,名字一定要与/etc/services中的入口名字cvspserver一致,所以这里用cvspserver作为文件名,文件的内容如下所示:

  service cvspserver

  {

  disable = no

  socket_type = stream

  wait = no

  user = root

  env = HOME=

  server = /usr/bin/cvs 

       server_args = -f --allow -root=/home/cvsroot pserver //指定认证方式为pserver
  }

  注意:a、service后面的名称一定要和你在/etc/service文件中的cvs服务名称一样;b、env = HOME=这一行的目的就是为了解决在执行一些cvs操作时产生的读取/root/.cvsignore文件的错误,上面env那行的意思就是在运行cvs服务的时候将环境变量HOME置空,这样虽然执行cvs的用户是root,但是由于没有了HOME这个环境变量,所以cvs就不会在去读取/root/.cvsignore文件了。

  4、配置CVS用户与cvsroot的属主与属组

  首先建立一个用户组cvs,可以使用groupadd或者addgroup命名,也可以直接编辑/etc/group文件添加这个组,然后添加一个用户cvsroot, 然后修改/etc/passwd文件,使cvsroot用户的缺省组是cvs组,而不是cvsroot组。在/home目录下建立cvsroot目录,然后修改/home/cvsroot的属主及属性:

  #chown cvsroot.cvs /home/cvsroot

  #chmod 771 /home/cvsroot

  5、CVS进行初始化

  安装完CVS服务器之后的另一件重要的事情就是要初始化CVS服务器的根目录,以后创建的CVS项目都将建立在这个目录下,采用的命令如下:

  #cvs -d /home/cvsroot init

  这样目录/home/cvsroot就成为CVS服务器的根目录,以后创建的目录都将默认的存放在这个目录下。

  6、登录cvs服务器

  1)如果是远程登录,采用以下语法:

  #cvs -d :pserver:cvsroot@host:/home/cvsroot login

  CVS password: //输入用户cvsroot的口令;

  如果没有出现其它的任何提示就表示登录成功了,否则要根据提示进行相应的修改。下面对登录命令的语法进行说明:

  :pserver表示采用pserver方式进行用户登录认证,一般的CVS服务器都采用这种方式,当然也可以采用其它方式,具体参考相应的资料;

  :cvsroot表示要登录的用户名,只要是cvs组的成员都可以,如:cather;

  @host表示要登录的服务器,可以是DNS名,也可以是IP地址,如:10.104.1.204;  

        :/home/cvsroot表示CVS在服务器上的目录,也可以是其它目录(由第6中你所指定的用来做init初始化的目录决定);

  提示:也可以把export CVSROOT=:pserver:jchuang@192.168.0.8:/home/cvsroot这一句直接写在用户的初始化文件中(如:.bash_profile),这样用户每次登录时,只需输入:#cvs login,然后输入相应的口令就可以登录到cvs服务器上。

  2)如果是本地登录,可以直接把export CVSROOT=/home/cvsroot这一句写在用户的初始化文件如:.bash_profile中;然后直接登录。

  7、向CVS添加新的项目模块

  一般我们都已经有一个或多个项目了,这样我们可以用下面步骤生成一个新的CVS项目。将一个工程文件置于CVs中进行版本控制,在CVS 术语中称作导入(import)。从名字上就可以看出,在导入前需要为此作些准备工作。

  输入操作的基本要求是有个“干净”的目录结构。“干净”的意思是不需要版本控制的文件都被移走了。如果工程已经开始一段时间了,这就显得很重要。在目录中也许有些是不打算将其置于版本控制下的文件,但是又想将他们放在这里,这种情况下,你要在输入之前将它们移走,然后再移回来。

  需要注意的是,CVS认为空目录是不存在的。如果想增加一个既不包含文件又不包含子目录的目录,需要在其下创建一个哑文件。建议你创建一个名为 README.txt 的文件,其内容为对目录的简要说明。进入到已有项目的目录,比如叫 cvstest:

  $cd cvstest

  运行命令将项目文件导入到cvs仓库中:

  $cvs import -m "this is a cvstest project" cvstest v_0_0_1 start

  说明:import是cvs的命令之一,表示向cvs仓库输入项目文件;-m参数后面的字串是描述文本,对项目进行描述,如果不加-m参数,那么cvs会自动运行一个编辑器让你输入信息,cvstest是项目名称;v_0_0_1是这个分支的总标记;start是每次import标识文件的输入层次的标记。

  这样我们就在用户指定进行初始化的目录/home/cvsroot下建立了一个名字叫cvstest的CVS模块了,然后,我们可以把这个测试项目的文件删除,试验如何从仓库获取文件这会在后面的客户端文章进行说明。

  8、从cvs本地服务器上checkout相应的模块

  1)如果是在CVS服务器所在计算机上,可以直接采用如下命令:

  #cvs checkout stw

  这样将把stw项目模块checkout到当前目录下。

  2)如果是在远程运行Linux或其它Unix系统上,在6中登录之后,也可以用上边的命令把相应的项目模块checkout到当前目录下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值