Linux CVS资料收集

来源:互联网 发布:淘宝各类目转化率 编辑:程序博客网 时间:2024/05/08 19:02
1、安装CVS
 首先确定系统中没有安装CVS,如果没有则安装:<br>
 yum install cvs


2、确认系统中是否安装xinetd,在Fedora 6中这个没有默认安装。如果没有安装则安装:
 yum install xinetd

3、修改/etc/xinetd.d/cvs

[root@fc6 CVSROOT]# cat /etc/xinetd.d/cvs
# default: off
# description: The CVS service can record the history of your source /
#              files. CVS stores all the versions of a file in a single /
#              file in a clever way that only stores the differences /
#              between versions.
service cvspserver
{
        disable                 = no
        port                    = 2401
        socket_type             = stream
        protocol                = tcp
        wait                    = no
        user                    = root
        passenv                 = PATH
        server                  = /usr/bin/cvs
#       env                     = HOME=/var/cvs
        server_args             = -f --allow-root=/shanmin/cvs pserver
#       bind                    = 127.0.0.1
}

4、初始化cvs服务
 cvs -d /shanmin/cvs init
 注:这个路径要和/etc/xinetd.d/cvs中的一致,并且可以随便根据自己的需要定制.

5、增加用户
 groupadd cvs
 useradd cvsroot -g cvs

6、设置目录权限
 chmod 777 /shanmin/cvs

7、修改/shanmin/cvs/CVSROOT/config文件
[root@fc6 CVSROOT]# cat config
# Set this to "no" if pserver shouldn't check system users/passwords
#SystemAuth=no

# Put CVS lock files in this directory rather than directly in the repository.
#LockDir=/var/lock/cvs

# Set `TopLevelAdmin' to `yes' to create a CVS directory at the top
# level of the new working directory when using the `cvs checkout'
# command.
#TopLevelAdmin=no

# Set `LogHistory' to `all' or `TOEFWUPCGMAR' to log all transactions to the
# history file, or a subset as needed (ie `TMAR' logs all write operations)
#LogHistory=TOEFWUPCGMAR

# Set `RereadLogAfterVerify' to `always' (the default) to allow the verifymsg
# script to change the log message.  Set it to `stat' to force CVS to verify
# that the file has changed before reading it (this can take up to an extra
# second per directory being committed, so it is not recommended for large
# repositories.  Set it to `never' (the previous CVS behavior) to prevent
# verifymsg scripts from changing the log message.
#RereadLogAfterVerify=always

注:这个更改是为了用户验证的时候忽略系统用户,这样可以避免建立很多的系统帐户,而影响安全性。

8、增加/shanmin/cvs/CVSROOT/passwd文件
[root@fc6 CVSROOT]# cat passwd
shanmin:woXRXXMqwnmWs:cvsroot
注:这个密码文件中第2段是md5的密码。多个用户为每行一个.

9、增加/shanmin/cvs/CVSROOT/readers文件
 这个文件中存储着所有只读用户的用户名,一行一个.

10、增加/shanmin/cvs/CVSROOT/writers文件
 这个文件中存储着所有可写权限的用户名,一行一个.
 注:同一个用户不要在/shanmin/cvs/CVSROOT/readers和/shanmin/cvs/CVSROOT/writers中都填写,如果都填写则以/shanmin/cvs/CVSROOT/readers中的为准。

11、关闭SELinux
 [root@~]#setenforce 0
 注:CVS和SELinux有“冲突”,必须关闭,不然客户端会提示没有权限。

12、启动服务
 service xinetd start

13、防火墙开2401端口

14、服务端安装完成。

Redhat linux下cvs的安装配置


通常情况下,RH linux缺省安装了cvs。
可以查看是否安装cvs
#rpm -qa|grep cvs
如果安装了,就会返回已安装的cvs版本号
#cvs-1.11.2-25
如果未安装,到www.cvshome.org下载一个最新的rpm安装即可


创建用户cvs
#useradd cvs
为cvs用户添加密码
#passwd cvs
创建目录来放需要导入的源代码库
#mkdir /home/cvs/cvsroot
修改目录归属
#chown -R cvs:cvs /home/cvs/cvsroot

1.初始化cvs源代码库,此操作生成目录/home/cvsroot/CVSROOT,其下为一些初始化文件
#cvs -d /home/cvs/cvsroot init
也可以将cvsroot目录建在别的地方
#cvs -d /space/cvsroot init

 

*加入cvs服务(缺省安装的通常缺省就有cvs服务)
#vi /etc/services
#cvspserver 2401/tcp #pserver cvs service
#cvspserver 2401/udp #pserver cvs service


2.把cvs服务放到xinetd系统服务中
#cd /etc/xinetd.d
#vi cvspserver
文件内容:
service cvspserver
{
flags             = REUSE
socket_type       = stream
wait              = no
user              = root
server            = /usr/bin/cvs
server_args       = -f --allow-root=/home/cvs/cvsroot pserver
log_on_failure   += USERID
disable           = no
}
确认/etc/services文件中,有cvspserver关键词,并分配了端口,如:cvspserver  2401/tcp
重新启动xinetd:
#/etc/rc.d/init.d/xinetd restart

*检查cvspserver服务是否已经启动
#netstat -l |grep cvspserver
应该有如下结果,表明cvs服务器安装成功:
tcp 0 0 *:cvspserver *:* LISTEN

 

3.登录cvs服务器(如服务器IP是192.168.2.253):
另一台linux机器执行下列命令:
#export CVSROOT=:pserver:cvs@192.168.2.253:2401//space/cvsroot
#cvs login
输入密码,没有出错提示表示登陆成功.

如果想在一个linux系统上建多个源代码库,分别提供cvs服务。重复上面步骤就可以了。
第1步时候要注意使用一个不同路径。
第2步放到xinetd系统服务中稍微麻烦点。/etc/xinetd.d目录下要生成一个新的任务配置文件,

例如cvspserver1,文件中service名称一定要区分第一个,例如service

cvspserver1,server_args做相应变动。还要在/etc/services文件中,加入新的服务端口号,

例如:cvspserver1      2402/tcp。重新启动xinetd服务.
第3步测试时候,可以这样设定:
#export CVSROOT=:pserver:cvs@192.168.2.253:2402/usr/local/source1


客户端需要设置CVSROOT变量,下次登陆cvs的时候不用输入路径
如客户端有用户guo,在/HOME/guo目录的文件.bash_profile中加入:
CVSROOT=:pserver:cvs@202.204.114.37:/home/cvs/cvsroot
export CVSROOT
键入命令使变量设置马上生效:
#source /home/weiqiong/.bash_profile

导入源代码,如果所有的代码都在目录/home/guo/source下
#cd ~/source
#cvs import -m "initial code" test guo start
这样服务器上生成目录/home/cvs/cvsroot/test中为源代码库

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

又摘抄了一点



linux cvs 安装配置
一、以root用户登录,安装cvs,此处可参考安装文档
二、创建cvs组:
  # groupadd cvs
三、创建cvs主用户:
  # useradd –g cvs cvsroot
  # passwd cvsroot
四、创建cvs的主目录:
  mkdir /home/cvsroot
五、修改/home/cvsroot目录的属组为cvsroot用户和cvs组权限为770使同组成员可以读写该目录:
  # chown cvsroot /home/cvsroot
  # chgrp cvs /home/cvsroot
  # chmod 770 /home/cvsroot
六、6.初始化cvs源代码库,此操作生成目录/home/cvsroot/CVSROOT,其下为一些初始化文件
   # cvs -d /home/cvsroot init
七、加入cvs服务,修改/etc/services,如果没有如下两行,则添加
  cvspserver      2401/tcp                        # CVS client/server operations
  cvspserver      2401/udp                        # CVS client/server operations
八、如果使用的是xinetd方式,所以在xinetd.d目录下添加需要启动的服务,则在该目录添加文件cvspserver,此名字必须与services
 文件中一致
  service cvspserver
    {
       disable = no
       flags = REUSE
       socket_type = stream
       wait = no
       user = root
       server = /usr/local/cvs/bin/cvs
       server_args = -f --allow-root=/home/cvsroot pserver
       log_on_failure += USERID
    }
   其中/usr/local/cvs/bin/cvs为cvs命令的执行路径
九、重新启动xinetd:
  /etc/rc.d/init.d/xinetd restart
十、检查cvspserver服务是否已经启动
  netstat -l |grep cvspserver
  应该有如下结果:
  tcp 0 0 *:cvspserver  *:* LISTEN
十一、试用:
    cvs -d :pserver:用户名@localhost:/home/cvsroot login
    敲入命令回车后提示输入用户名的密码,你按照自己设置的密码输入,如果没有什么错误信息出现就是成功了
十二、添加cvs用户:
  创建可以登陆cvs服务的用户及密码,需要创建文件passwd
   vi /home/cvsroot/CVSROOT/passwd
   文件内容如下:
   test1:xxxxxx:cvsroot
   test2:xxxxxx:cvsroot
   此文件的意思是test1和test2两个用户可以登陆cvs服务器,登陆后其权限为用户cvsroot的权限
   注意:cvs用户和服务器用户是可以不一样的
    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";
 
  +++++ 可以使用/apache/bin/htpasswd 生成 +++++++
十三、系统其它用户如果应用cvs,则将用户的主属组设为cvs即可
   修改/etc/passwd文件
十四、添加cvs路径:
  PATH=$PATH:/usr/local/cvs/bin
  export PATH
  CVSROOT=/home/cvsroot
  export CVSROOT
  其中/usr/local/cvs/bin为cvs的命令路径
至此,cvs配置已全部完成,系统其它用户以可应用cvs命令,如果应用命令cvs ci等有目录不可写等错误,
则修改/home/cvsroot目录下对应的目录权限即可
原创粉丝点击