How software bugs impact our lives

版本控制系统cvs的安装和配置

上一篇 / 下一篇  2007-11-21 09:46:32 / 个人分类:other

cvs 是一个开源的版本控制系统。 我们可以用它来记录源文件的修改历史。
例如,修改软件时可能会不知不觉混进一些 bug,而且可能过了很久你才会察觉到它们的存在。有了 cvs,你可以很容易地恢复旧版本,并从中看出到底是哪个修改导致了这个 bug。
如果我们把曾经创建的每个文件都保存下来显然会浪费大量的磁盘空间。cvs的做法是把一个文件的所有版本保存在一个文件里,仅仅保存不同版本之间的差异。
对于开发人员来说,两人之间很容易很容易互相覆盖文件。cvs用隔离不同的开发人员的方式解决了这个问题,每个开发人员在自己的目录工作,等完成之后由cvs合并。
cvs 最初由 Dick Grune 在 1986 年 12 月以 shell 脚本的形式发布在 comp.sources.unix 的新闻组第 6 卷里。虽然当前的 cvs 中没什么代码来自于这些 shell 脚本,但许多 cvs 的冲突解决算法是从它们来的。
1989 年 4 月,Brian Berliner 设计了 cvs 并编写了代码。之后 Jeff Polk 帮助 Brian 设计了 cvs 模块和销售商分支支持。
我们可以免费从网上下载到cvs
网址:http://www.cvshome.org/
1、基本安装
以下以UNIX平台为例。
http://ccvs.cvshome.org/servlets/ProjectDownloadList下载最新的cvs安装包到本地后:
    %gunzip cvs-1.11.2.tar.gz
    %tar xvf cvs-1.11.2.tar
    %cd cvs-1.11.2
    %./configure (可以用./configure --help看看,根据自己的环境添加相应的参数)
    %make
    %su -      (以正确的用户来安装)
%make install
2、CVS Server端的配置
 安装完CVS(假设cvs安装在/usr/local/bin)后:
(1)启动CVS服务
    %vi /etc/services 
  pserver 2402/tcp #cvs pserver port   (确认这一行存在。)
    %vi /etc/inetd.conf
    在文件末尾加入:
  pserver stream tcp     nowait  root    /usr/local/bin/cvs cvs --allow-root=/your/path/for/cvs/repsitory pserver
  注意这是一行。
  然后重新启动inetd进程(一般要root用户权限):
  %ps -ef | grep inetd  找出inetd的pid
    %su -
  %kill -HUP pid
  %inetd

(2)建立cvsadm用户和组(使cvsadm用户属于cvsadm组,用于对cvs进行管理)
  在cvsadm用户的.cshrc(ksh,sh对应的文件为.profile)文件中设置环境变量$PATH变量中加入/usr/local/bin,并置$CVSROOT为: 
  :pserver:cvsadm@192.168.4.33:/your/path/for/cvs/repository
  其中192.168.4.33为CVS服务器的IP地址。
(3)生成CVS环境
  确认/your/path/for/cvs/repsitory目录存在,且cvsadm有可写权限。以cvsadm登录Unix,运行%cvs login ,系统会提示输入密码,登录成功后,执行:%cvs init
  (注: 此时可能会提示.cvspass文件不存在,手工touch .cvspass文件后,重新运行cvs login和cvs init 即可)
(4)配置cvs环境
  验证方式:
  缺省情况下可以操作系统系统帐号的验证方式和cvs passwd验证方式以及rhost方式均有效,但从安全角度出发,建议只采用cvs passwd 的验证方式。因为这种方式下的cvs用户是不能直接telnet到cvs server主机上,只能通过cvs client进入cvs server主机对cvs进行存取。
  禁用系统帐号验证的方法如下:
  %vi $CVSROOT/CVSROOT/config
  加入:  SystemAuth=no   即可
  CVS口令文件:
  缺省情况下cvs passwd 验证方式所需的passwd文件(位于$CVSROOT/CVSROOT目录下)不存在,需自己创建
  文件格式如下:
  cvsadm:adfWS~!#$@S->:cvsadm
  user1::osuser1
  user2::osuser2
  user3::osuser1
  注:passwd文件的格式是:
  以“:”为分隔,分为三部分:
   第一部分是cvs帐号名(与系统帐号无关,也可与系统帐号名相同)
   第二部分(可选项)是加密串,每个系统用户的加密串缺省是在/etc/shadow中,如果cvs帐号不是操作系统的帐号,shadow中是不会有cvs帐号的加密串的,这时就必须手工为cvs帐号生成加密串,可以将其他系统帐号的密码修改成想要的密码(此时shadow文件的加密串跟着改变),在取得加密串后改回去。当第二部分置空时,该帐号以任何口令均可登入cvs server
   第三部分(可选项)是一个操作系统帐号, 如果登陆成功, cvs用户就以此系统帐号的身份存取cvs中的源代码,这里的系统帐号是cvs权限控制的关键, 这个系统帐号有什么权限, 以此帐号身份存取cvs的cvs用户就有相同的权限.。注意: 考虑到cvs用户是以某个系统帐号的身份运行的, 此系统帐号应当对repository下的相应目录有写的权限, 这样就存在直接进入目录对文件进行修改的可能, 而这是cvs操作所不允许的,为了避免这种误操作, 建议在产生此系统帐号时使其shell为/bin/false, 并且不设置此帐号的密码,这样可以禁止直接以此系统帐号telnet或者ftp进入CVS Server。
  另外,passwd文件中的用户不能重名,否则只有第一个有效。
3、CVS Client端的配置
(1)Unix环境下:
  CVS服务器正确安装置后,就可以设置Client端来操作了。
  设置方法是:
  在用户的环境变量设置$CVSROOT变量,以a用户为例:
  %setenv CVSROOT :pserver:a@192.168.4.33:/your/path/for/cvs/repository
  %cvs login  系统将提示输入CVS口令
  口令认证通过后,就可以进行CVS的操作了。
(2)Windows环境下:
  在http://www.wincvs.org下载最新wincvs软件并安装。
  设置环境CVSROOT变量:
      运行wincvs,从界面菜单处,选择admin --> preference --> General -->设置CVSROOT为::pserver:a@192.168.4.33:/disk1/repository
      其中的a为用户的CVS帐号,@后面是CVS服务器的IP地址。
      当cvs server的端口不是缺省的2401时,需要在
  admin --> preference --> Ports -->设置For "pserver"(passwd) port为定义的值。


相关阅读:

TAG: cvs other

追寻浮华的个人空间 引用 删除 追寻浮华   /   2008-06-04 16:43:41
sacri老哥,在别人的链接下看到了你的bolg,好多东西啊。.要学习了
 

评分:0

我来说两句

日历

« 2024-04-09  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 20977
  • 日志数: 28
  • 建立时间: 2007-11-17
  • 更新时间: 2008-07-05

RSS订阅

Open Toolbar