CVS管理系统配置 HOWTO
Author: ycflash
Date: 2005-9-11
1. CVS 的安装
1.1 安装系统 RHEL AS 4 / RHEL AS 4 U1
1.1.1 自行安装 httpd
1.2 检查系统自带的CVS是否安装:
#rpm -q cvs
若没有安装则自行安装:
#rpm -ivh cvs*.rpm
or build from src
#tar zxvf cvs*.tar.gz
#./configure
#make ; make install
1.3 配置CVS用户和组
添加组
#groupadd cvs
添加用户
#useradd -g cvs -G cvs -d /cvsroot cvsroot
修改cvs用户密码
#passwd cvs
若有必要修改 /cvsroot 权限
#chmod 775 /cvsroot
1.4 创建项目目录
#su cvs
$mkdir /cvsroot/cvs-test
1.5 开始建立仓库
$cvs -d /cvsroot/cvs-test init
1.6 建立CVS启动配置文件
#vi /etc/xinetd.d/cvspserver
内容如下:
service cvspserver
{
port = 2401
socket_type = stream
protocol = tcp
wait = no
user = root
passenv = PATH
server = /cvsroot/cvs.run
log_on_failure += USERID
}
1.7 编写 cvs.run 启动脚本
#vi /cvsroot/cvs.run
内容如下:
#!/bin/bash
/usr/bin/cvs -f /
--allow-root=/cvsroot/cvs-test /
--allow-root=/cvsroot/cvs-test2 /
pserver
1.8 检查能否启动 CVS 服务器
#service xinetd restart
#netstat -ln | grep 2401
得到下面信息就表示启动成功:
tcp 0 0 0.0.0.0:2401 0.0.0.0:* LISTEN
1.9 编写 Perl 脚本以生成等用户的密码
#vi /cvsroot/pwd.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}";
print "/n";
#chmod +x /cvsroot/pwd.pl
1.10 为项目添加用户
$vi /cvsroot/cvs-test/CVSROOT/passwd
内容如下:
ycflash:****:cvs
注: ycflash 是该项目的一个用户,****是用 pwd.pl 生成密码。
如要为 ycflash 设置密码为 123321 , 则命令为
$/path/to/pwd.pl 123321 或 $/path/to/pwd "123321"
匿名用户只需密码为空即可。
1.10.1 设置匿名用户为只读
$vi /cvsroot/cvs-test/CVSROOT/readers
添加anonymous(只读)用户 id 即可
1.11 项目仓库就建立好了,添加更多用户就往 passwd 文件中添加就可。
1.12 源代码的入库
$tar zxvf smthbbs-2.tgz
$cd smthbbs-2
$export CVSROOT=/cvsroot/cvs-test
$cvs import -m "Imported sources" smthbbs-2 cvs start
注: smthbbs-2 是module的名字, cvs为发布者
1.13 检查结果
$cd ..
$mv smthbbs-2 src
$cvs co smthbbs-2
$diff -r byrbbs-2.0dev smthbbs-2 //检查是否正确
1.14 用pserver方式check out测试(略)
2. CVSWEB + CVSGRAPH + ENSCRIPT + CVShistory 的安装
2.1 软件准备:
cvsgraph-1.5.2.tar.gz
enscript-1.6.4.tar.bz2
cvsweb-3.0.5.tar.gz
IPC-Run-0.78.tar.gz
cvshistory-2.2.tar.bz2
说明: 以下命令 cd xyz-* 代表进入解压后的目录
2.2 CVSWEB 的安装
#tar zxvf cvsweb-3.0.5.tar.gz
#cd cvsweb*
#cp cvsweb.cgi /usr/local/httpd/cgi-bin/
#chmod 755 /usr/local/httpd/cig-bin/cvsweb.cgi
#cp -r icons css /usr/local/httpd/htdocs/cvs/
#cp cvsweb.conf /usr/local/etc/cvsweb/cvsweb.conf
#vi /usr/local/etc/cvsweb/cvsweb.conf
注:修改icon和css的路径(修改为 web 的路径), 修改CVS仓库路径设置
2.3 IPC-RUN Perl 模块的安装
#tar zxvf IPC-RUN-0.78.tar.gz
#cd IPC-*
#./configure
#make
#make install
2.4 CVSGRAPH 的安装
#tar zxvf cvsgraph-1.5.2.tar.gz
#cd cvsgraph-*
#./configure
#make
#cp cvsgraph /usr/local/bin
#cp cvsgraph.conf /usr/local/etc/cvsgraph.conf
#vi /usr/local/etc/cvsweb/cvsweb.conf
修改$cvsgraph_config为:
$cvsgraph_config = "/usr/local/etc/cvsgraph.conf";
2.5 ENSCRIPT 的安装
#tar jxvf enscript-1.6.4.tar.bz2
#cd enscript-*
#./configure
#make
#make install
#cd ..
#cp cvsweb-*/enscript/* /usr/local/share/enscript/hl/
2.6 CVSHistory 的安装
#tar jxvf cvshistory-2.2.tar.bz2
#cp cvshistory-*/cvshistory.cgi /usr/local/httpd/cgi-bin/
#cp cvshistory-*/cvshistory.conf /usr/local/etc/
#vi /usr/local/etc/cvshistory.conf
修改 HISTORY 为:
HISTORY = {
'': "/cvsroot/cvs-test/CVSROOT/history",
}
修改 SCRIPTPATH = "viewcvs.cgi" 为 SCRIPTPATH = "cvsweb.cgi"
以便在 cvshistory 中可以直接跳转到变更的文件/目录。
#chmod 755 /usr/local/httpd/cgi-bin/*cvs*.cgi
2.7 重启 httpd
#/usr/local/httpd/bin/apachectl restart
2.8 访问测试
http://localhost/cgi-bin/cvsweb.cgi
到此就完成安装设置了。