CentOS下CVS配置
由于实验室的项目需要进行版本控制,正好有台空闲的CentOS,可以拿来作服务器,于是就搞了一下,配置过程如下:
环境:
- OS:CentOS 5.5
- Kernel:Linux hit-centos 2.6.18-194.32.1.el5 #1 SMP
- CVS Version:Concurrent Versions System (CVS) 1.11.22 (client/server)
1. 首先确认CVS是否安装:
rpm -qa | grep cvs,如果出现 cvs-1.11.22-7.el5就说明CVS已经在主机上安装了。
2. 建立CVS管理所对应的用户和组:
在centos下这个过程有个小插曲,首先如果终端下直接输入sudo groupadd的话会提示出错,"sudo: groupadd: command not found",然后切换到root用户su,仍然是找不到命令,Google了一下centos的wiki上(http://wiki.centos.org/TipsAndTricks/BecomingRoot)讲得还是很清楚的,当我们想要change为root身份时su就足够了,但是不会获得其环境配置信息,因此当执行groupadd或ifconfig时就会提示找不到命令,正确的切换命令应该是su -,the trailing dash is the tricky. 之后就可以新建组groupadd cvs,然后添加一个新用户到工作组useradd -g cvs -G cvs -d /home/cvs-wsn hit-wsn,指定用户密码passwd hit-wsn
3. 以hit-wsn进行CVS的相关操作,初始化cvs源代码库,此操作生成目录/home/cvs-wsn/wsn-opdk/CVSROOT,其下为一些初始化文件,wsn-opdk为CVS管理的工程目录:
su hit-wsn
mkdir wsn-opdk
cvs -d /home/cvs-wsn/wsn-opdk/ init,注意这里的路径为绝对路径。
4. CVS server的配置文件:
sudo vim /etc/xinetd.d/cvspserver,内容如下:
service cvspserver
{
flags = REUSE
socket_type = stream
wait = no
user = hit-wsn
protocol = tcp
server = /usr/bin/cvs
server_args = -f --allow-root=/home/cvs-wsn/wsn-opdk pserver
log_on_failure += USERID
disable = no
}
5. 检查cvsperver服务:
cat /etc/services | grep cvspserver
结果显示 cvspserver 2401/tcp # CVS client/server operations
cvspserver 2401/udp # CVS client/server operations
说明服务已存在。
6. 重启xinetd服务:
sudo /etc/init.d/xinetd restart
7. 再次检查cvspserver服务是否已经启动:
netstat -l | grep cvspserver,结果为"tcp 0 0 *:cvspserver *:* LISTEN"
8. 添加CVS登录用户:
在刚才新建的CVS代码库的CVSROOT目录下新建一个passwd文件,htpasswd -c passwd fc14,将新建一个叫做passwd的文件并且提示输入密码,密码经过md5加密放入passwd文件.以后新加用户不用-c,其中fc14是我的CVS登录用户名,
9. 修改passwd文件,将CVS用户于系统用户对应:
每个用户那行最后添加:cvsroot ,然后去掉每行第二个冒号以后的所有内容,并添上字符串cvsroot
我这里的系统用户为hit-wsn,所以就在后面添加了:hit-wsn,如:fc14:qfFRYXwG3SOaQ:hit-wsn
10. 这里我把方护墙和selinux都禁用了,根据以前的经验selinux会对此进行限制:
vim /etc/sysconfig/selinux SELINUX=enforcing change to SELINUX=disabled
11. 测试一下:
测试是在在局域网中的一台安装有CVS client的机器上的,就是我的fedora 14上,首先设置CVSROOT环境变量,在.bashrc下添加如下内容:
export CVSROOT=:pserver:fc14@$(server_ipaddr):2401:/home/cvs-wsn/wsn-opdk/,其中psrver为协议,fc14是我刚刚添加的登录用户名,后面是CVS服务器的IP地址和端口号,最后是仓库的路径。
输入密码登录成功之后就可以 cvs add file,cvs commit file了,我之后把项目工程放到了wsn-opdk下了,cvs checkout top_dir成功!
做得过程中参考了如下链接:
http://blog.donews.com/zzw45/index.php/2007/05/centos4-5-%E4%B8%8A%E9%85%8D%E7%BD%AE-cvs/
http://wiki.centos.org/TipsAndTricks/BecomingRoot