zoukankan      html  css  js  c++  java
  • 配置CVS服务器和客户端完全解析

    CVS 代表协作版本系统;这是一个将一组文件放在层次目录树中以保持同步的系统。人们可以从 CVS 服务器上更新他们的本地层次树副本,并将修改的结果或新文件发回;或者删除旧文件。

     

      CVS 基于客户端/服务器的行为使得其可容纳多用户,构成网络也很方便。这一特性使得 CVS 成为位于不同地点的人同时处理数据文件(特别是程序的源代码)时的首选。

      所有重要的免费软件项目都使用 CVS 作为其程序员之间的中心点,以便能够综合各程序员的改进和更改。这些项目包括: Gnome, KDE, The GIMP, Wine, 等等。

      所以,理所当然的,MandrakeSoft 也使用 CVS 作为其自身的开发管理平台。

      下面是我自己在配置CVS服务器和客户端的一点步骤总结,希望能帮你节省时间,一步到位^-^

      配置服务器的全部步骤如下:

      1:我用的是linux redhat9.0

      2:建立了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

      文件内容如下:

      steven:xxxxx:cvsroot

      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服务(我的redhath9缺省就有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

      我的redhat9使用的是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

      以上结果全部通过,但是在我的客户机(redhat9)上执行

      cvs -d :pserver:steven@192.168.211.72:/home/cvsroot login

      输入密码后,返回connection confuse信息

      补:

      cvs -d :pserver:steven@192.168.211.72:/home/cvsroot login

      输入密码后,没有收到任何消息,即表示成功

      ^_^ no news is a good news!!

      在客户端,设置环境变量如下:

      export CVS_RSH=ssh

      export CVSROOT=:pserver:username@ip:/home/cvsroot

      你可以

      echo $CVS_RSH

      ssh

      echo $CVSROOT

      :pserver:username@ip:/home/cvsroot

      这样你在客户端就可以直接输入 cvs login登陆了

      其它操作都可以直接cvs command 了

  • 相关阅读:
    2021,6,10 xjzx 模拟考试
    平衡树(二)——Treap
    AtCoder Beginner Contest 204 A-E简要题解
    POJ 2311 Cutting Game 题解
    Codeforces 990G GCD Counting 题解
    NOI2021 SDPTT D2T1 我已经完全理解了 DFS 序线段树 题解
    第三届山东省青少年创意编程与智能设计大赛总结
    Luogu P6042 「ACOI2020」学园祭 题解
    联合省选2021 游记
    Codeforces 1498E Two Houses 题解 —— 如何用结论吊打标算
  • 原文地址:https://www.cnblogs.com/zhwl/p/2376617.html
Copyright © 2011-2022 走看看