轉自: http://blog.csdn.net/jeanminlu/archive/2009/02/18/3906744.aspx
1、CVS和CVSACL源码的获得
1)获取CVS及CVSACL源码的外网地址如下:
l CVS:http://www.cvshome.org ,
l CVSACL:http://sourceforge.net/projects/cvsacl 。
2)获取CVS及CVSACL源码的内网地址如下
需要注意的是,因为CVSACL是在CVS源代码的基础上进行修改而实现访问权限控制的,所以CVSACL的每个版本都是针对一个特定的CVS的源代码版本的。在选择下载时一定要注意这两者的版本要能配合上。
2、编译、安装CVS/CVSACL程序
下面以cvs-1.11.22-cvsacl-1.2.5-patched.tar.gz为例子来说明CVS、CVSACL安装过程:
1、首先,以root用户登录linux系统,假设我们的当前目录在/home/root下,安装包也都在当前目录中,使用下面的命令来解压缩:
tar zxvf cvs-1.11.22-cvsacl-1.2.5-patched.tar.gz
解压缩完成后,/home/root下将会产生cvs-1.11.22-cvsacl-1.2.5-patched.tar.gz这个目录。
2、使用以下命令进入CVSACL源文件所在的目录
cd cvs-1.11.22-cvsacl-1.2.5-patched.tar.gz
3、按下面的方式编译安装CVS,或者依据CVS本身提供的INSTALL文件对CVS进项编译和安装。
./configure
make
make install
3、CVS 服务器的配置
在/etc/xinetd.d下增加一个文件名为cvspserver的文件,文件内容如下(请严格按照下面的内容新建文件,注意字符的大小写和空格否遗漏或多余):
service cvspserver
{
disable = yes
socket_type = stream
protocol = tcp
user = root
wait = no
server = /usr/bin/cvs
server_args = -f --allow-root=/home/cvsroot pserver
}
此时,cvs服务就成功的在linux系统上安装完成了
4、CVS仓库初始化
下面以初始化EBoss项目为例,说明初始化仓库的过程
1) 用root用户添加项目cvs管理操作系统用户
[root@CVSServer root]# useradd -M -s /bin/false eboss
2) 用root用户建立仓库目录
[root@CVSServer root]# mkdir /repository/eboss
3) 用root用户初始化cvs仓库
[root@CVSServer root]# cvs -d /repository/eboss init
4) 改变仓库属主、设置仓库的系统权限
[root@CVSServer root]# chown -R eboss:eboss /repository/eboss
[root@CVSServer root]#chmod –R 770 /repository/eboss
5) 修改cvs服务配置文件添加新仓库配置
vi /etc/xinet.d/cvspserver
在 server_args = 后 pserver 前 添加如下内容:
-f --allow-root=/repository/eboss
6)重新启动CVS服务
[root@CVSServer root]# service xinetd restart
7) 把配置管理员操作系统用户添加到系统组文件中
[root@CVSServer root]# vi /etc/group
添加如下内容:
projectA:x:563:wangyani
保存退出
8) 在项目CVS仓库的CVSROOT目录下创建passwd,writers,readers,group文件
[root@CVSServer root]# cd /repository/eboss/CVSROOT
[root@CVSServer root]# touch passwd readers writers group
[root@CVSServer root]# chmod 660 passwd readers writers group
5、CVSTRAC链接的产生
通过CVSTRAC的WEB页面进行CVS仓库的管理 (暂时主要进行CVS用户的添加作用)
1) 首先确保系统已经安装cvstrac,可用如下命令进行检测:
[root@CVSServer root]# which cvstrac
/usr/bin/cvstrac
如有以上显示则说明cvstrac已经安装,可以使用cvstrac。
2) 对项目cvs仓库目录进行初始化,生成cvstrac数据库
[root@CVSServer root]# su wangyani
[wangyani@CVSServer root]# cvstrac init /repository/eboss eboss
[root@CVSServer root]# chmod 660 eboss.db
3) 在apache的cgi脚本运行目录中创建cvstrac调用脚本,并使所有人对脚本有可执行权限
Redhat AS4 操作系统默认安装的apache的cgi脚本运行路径为: /var/www/cgi-bin
以root用户在/var/www/cgi-bin目录建立脚本
[root@CVSServer root]# vi /var/www/cgi-bin/eboss
写入如下内容:
#! /bin/sh
/usr/bin/cvstrac cgi /repository/eboss
退出保存
[root@CVSServer root]# chomod +x /var/www/cgi-bin/eboss
4) 把运行apache的用户添加到项目cvs管理操作系统用户组
[root@CVSServer root]# vi /etc/group
修改如下内容:
projectA:x:563:wangyani,apache (注释: apache为运行httpd服务的默认用户)
保存退出
5) 重新启动apache的httpd服务
如果是启动系统默认的apache必须用root用户进行重新启动
[root@CVSServer root]# /usr/sbin/apachectl restart (或者 service httpd restart)
6) 在浏览器地址栏敲入 http://服务器IP(或域名)/cgi-bin/cvstrac脚本名/cvstrac数据库名/ 进行访问
实例: http://172.20.82.176/cgi-bin/eboss/eboss/
默认登录管理用户为setup 密码也是setup
登录后先设置项目CVS仓库路径再进行项目的cvs用户添加等操作
6、关于CVSACL的权限设置
1) 添加项目配置管理员操作系统用户的cvs管理员权限
编辑/repository/eboss/CVSROOT/access文件,添加类似如下内容:
projectA替换为项目的模块名,scmer替换为各配置管理员操作系统用户名
d:ALL:ALL:scmer!p:
保存退出
2) 设置/repository/xxx/projectA/CVSROOT/aclconfig文件,修改内容如下:
# Default CVSACL Permission to use.
CVSACLDefaultPermissions=n
# Set `UseSystemGroups' to yes to use system group definitions (/etc/group).
UseSystemGroups=no
# Set `UseCVSGroups' to yes to use another group file.
UseCVSGroups=yes
3) 设置/repository/xxx/projectA/CVSROOT/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
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jeanminlu/archive/2009/02/18/3906744.aspx
http://www.linuxsir.org/bbs/thread244795.html
10.配置CVS Server 10.1 cvs的基本配置: 检查/etc/services中有没有cvspserver: cat /etc/services |grep cvs 在/etc/xinetd.d/下建立cvspserver文件,输入以下内容: service cvspserver { disable = no flags = REUSE socket_type = stream wait = no user = root protocol = tcp server = /usr/bin/cvs server_args = -f --allow-root=/cvspath(这里是CVS的仓库,任选) pserver } 建立仓库目录: mkdir $cvspath chown -R user:user $cvspath 不使用root用户做为cvs的默认用户。将仓库的权限交给user。 重启xinetd: service xinetd restart 在.bashrc中加入环境变量: export ":pserver:user@127.0.0.1/cvspath" 运行: . .bashrc 初始化: cvs init 或许要先登录再初始化: cvs login cvs init 使用cvs import命令将自己的档案导入CVS: 进入源代码目录: cvs import -m "comment" 档案名 厂商或作者 版本号(可以随便选个,没什么影响)比如有个test项目: cd test cvs import -m "注释" test user v_0_0_1 若要建立多仓库CVS,只需在server_args多加一个选项即可,例: server_args = -f --allow-root=/var/source --allow-root=/var/resource pserver 由于xinetd有长度限制,可以使用如下方法: 注释或删掉server_args行,将server行修改如下所示: server = /etc/cvs.run (文件位置任选) 在所指定的目录下建立cvs.run文件,该文件要有执行权限: #!/bin/bash /usr/bin/cvs -f / --allow-root=/var/source1a / --allow-root=/var/source2 / ............. chmod +x cvs.run 10.2 权限设置: CVS自己的权限设置有限,只有三个基本文件: passwd writers readers passwd是为了建立CVS自己的用户认证系统。格式为: 登录用户:加密的密码:系统中对应的用户 writers中的用户可进行写操作。 readers中的用户只可进行读操作。 可以借助系统用户和操作系统自身的文件权限来限制用户的读写。还可以借助各种外部脚本来管理,这个后面再讲。 10.3管理文件概述 在$CVSROOT/CVSROOT目录下有许多文件 ,这里简单介绍一下: config 配置文件,可以配置系统认证方式以用lockdir等 modules 模块文件 commitinfo 在进行cvs commit的时候会检查这个文件,如果里面有什么脚本的话会先执行这里面的脚本,通过这个文件会实现的功能数不胜数,好好用了。相似的还有loginfo,taginfo passwd,writers,readers,前面说了。 10.4外部脚本 在CVS源码下有一个contrib目录,这个目录下面有很多脚本并有详细的说明。还有在主页上也有很多工具提供下载。