服务器 频道

redhatlinux下建cvs服务器

  【IT168 服务器学院】安装cvs的rpm包后,服务器和客户端就都安装了,首先配置服务器端:

  1.查看是否安装cvs

  rpm -qa | grep cvs

  一般安装在/usr/bin/cvs,如果未安装,到www.cvshome.org下载一个最新的rpm安装即可

  2.建立cvs用户组,便于管理cvs用户

  groupadd cvs

  3.建立cvsroot用户,属于cvs组(组名必须为cvs),根目录为/home/cvsroot,不许登陆

  useradd -g cvs -s /sbin/nologin cvsroot

  4.改变/home/cvsroot的目录属性

  chmod 775 /home/cvsroot

  5.初始化cvs源代码库,此操作生成目录/home/cvsroot/CVSROOT,其下为一些初始化文件

  cvs -d /home/cvsroot init

  6.创建可以登陆cvs服务的用户及密码,需要创建文件passwd

  vi /home/cvsroot/CVSROOT/passwd

  文件内容如下:

  weiqiong:xxxxxx:cvsroot

  chenxu:xxxxxx:cvsroot

  此文件的意思是weiqiong和chenxu两个用户可以登陆cvs服务器,登陆后其权限为用户cvsroot的权限

  注意:cvs用户和服务器用户是可以不一样的

  7.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}
  ";

  8.如果需要密码为:123456,则敲入:

  passwdgen.pl "123456"

  回车即可得到加密密码,用其替换passwd文件中的xxxxxx

  9.加入cvs服务(一般的redhat上缺省就有cvs服务,所以不用加)

  vi /etc/services

  cvspserver 2401/tcp #pserver cvs service

  cvspserver 2401/udp #pserver cvs service

  10.一般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

  }

  11.重新启动inetd或者xinetd:

  /etc/rc.d/init.d/xinetd restart

  12.检查cvspserver服务是否已经启动

  netstat -l |grep cvspserver

  应该有如下结果:

  tcp 0 0 *:cvspserver *:* LISTEN

  --------------------------------------

  以上是服务器端配置,下面是客户端使用。为简便,本例中就在本机上使用,但下列步骤适用于任何cvs客户机。

  1.设置系统环境变量(设cvs服务器IP为192.168.0.2,本例中为本机IP)

  设置CVSROOT环境变量:

  修改~/.bash_profile,加入一行

  export CVSROOT=:pserver:weiqiong@192.168.0.2:/home/cvsroot

  然后运行命令 . ~/.bash_profile。

  2.使用:

  cvs login

  敲入命令回车后提示输入weiqiong的密码,你按照自己设置的密码输入,如果没有什么错误信息出现就是成功了。
  3.导入旧的工程:

  假定工程在/root/old/proj1/目录中,则

  cd /root/old/proj1

  cvs import -m "new project proj1" proj1 vendortag
  releasetag

  回车,系统会提示工程建立完毕。
  4.从cvs服务器上导出cvs工程:

  假定要将工程放在/root/new/目录下,则

  cd /root/new

  cvs co proj1

  回车,系统会提示工程顺利导出,出现目录/root/new/proj1,里面的文件就是你要修改的文件。
  5.提交文件:

  修改/root/new/proj1/a.c后,需要提交修改

  cd /root/new/proj1

  cvs ci -m "comments here" a.c

  回车,系统会提示文件顺利提交。
  6.取回新版本文件:

  如果自己的/root/new/proj1/a.c取回后,没有修改,但是服务器端的a.c被他人修改了,则需要更新本地拷贝

  cd /root/new/proj1

  cvs update a.c

  回车,系统会提示文件顺利更新。

  7.查看文件当前状态:

  cd /root/new/proj1

  cvs status a.c

  回车,系统会显示文件的当前状态。
  8.比较文件的新旧版本变化:

  如果要比较1.2版和1.3版的区别:

  cd /root/new/proj1

  cvs diff -r1.2 -r1.3 a.c

  回车,系统会显示文件的区别。

  如果要比较1.2版和当前版本的区别:

  cd /root/new/proj1

  cvs diff -r1.2 a.c

  回车,系统会显示文件的区别。

  9.查看文件被修改的记录:

  cd /root/new/proj1

  cvs log a.c

  回车,系统会显示所有提交过程中-m选项所提交的文字。

  10.注意:

  cvs服务器上的用户(本文中是cvsroot用户)必须是cvs组的才能用,如果还是报repository找不到,在客户端用户的home目录下touch文件.cvspass,文件是空的,但是当你login一次服务器后自动就有内容了。
  

0
相关文章