【51CTO独家特稿】本文一步一步介绍了FreeBSD 8.1下CVS服务器的配置。CVS服务器是版本控制系统,一般用于开发环境,用于多人协同开发项目的源代码管理。
推荐专题:企业内网开发环境部署与管理全攻略(FreeBSD+PHP)
作者简介:余洪春(博客),网名抚琴煮酒,英文名Andrew.Yu,武汉某外企高级Linux/Unix系统管理员、项目实施工程师,红帽RHCE讲师,擅长负载均衡高可用和中小型证券类和商务网站架构,目前关注网站架构研究及网络安全。
安装前的准备工作
系统是64位的FreeBSD 8.1,相关优化及配置我这里也不多费笔墨了(具体可以参考51CTO的FreeBSD配置与优化专题)。将ports配置好,另外在后面的过程中由于要用到Apache的htpasswd,所以预先要安装好apache22:
cd /usr/ports/www/apache22 make install clean
安装步骤
①下载cvs源码包:Sourceforge下载地址(1.11.21版本)
我使用的是cvs-1.11.21.tar包
源码编译安装
./configure --prefix=/usr/local/cvs make make install
②设置cvs使用超级服务器进程inetd启动方式
修改inetd的配置文件/etc/inetd.conf,最后一行添加
cvspserver stream tcp nowait root /usr/bin/cvs cvs --allow-root=/home/
cvsroot pserver
注:
- root是执行cvs进程的用户
- /usr/bin/cvs是cvs可执行文件的存储路径
- /usr/bin/cvs是cvs可执行文件存放的路径,要保证/usr/bin/里有cvs可执行文件;
- cvs --allow-root=/home/cvsroot 指定cvs的项目主目录,即用户可访问的项目原文件的一个存放目录,可以指定多个源代码仓库
检查/etc/services里有是否有cvspserver选项,若无的话则需用一个标识来代替cvs的端口号,
在/etc/services 文件中添加:
cvspserver 2401 #表示用cvspserver来标识2401端口
③设置cvs
添加cvs的管理用户和组
在freebsd中用adduser命令,按照提示一步步增加cvsroot用户。FreeBSD默认为此用户创建一个与用户名同名的组cvsroot,其它均可设置成默认值
④初始化cvs源代码仓库
将/home/cvsroot目录的权限改为775,我第三步已配置,这里检查下即可。这样下来cvsroot组的用户对此目录也有读写权限。
初始化目录
cvs -d /home/cvsroot init chmod -R 644 /home/cvs/cvsroot/CVSROOT/config #给权限config文件,不然等会又会因权限问题报错
◆注意
cvs中默认一个用户checkout代码时候,会在当前模块下生成一个锁文件,如果这个用户对当前模块没有写权限,读是不可能的。配合上面的权限设置,必须改一下cvs服务器配置。改成不在当前模块目录下生成锁文件,把锁文件集中到一个所有用户都有读写权限的目录。修改配置文件CVSROOT/config:
# Put CVS lock files in this directory rather than directly in the repository. # LockDir=/var/lock/cvs
去掉LockDir前的#即可
mkdir -p /var/lock/cvs
给予最高权限
chmod -R 777 /var/lock/cvs
⑤为cvs添加一个普通用户test
adduser命令添加test用户,密码自己设定;用pw groupmod将其添加进cvsroot组
pw groupmod cvsroot -m test
配置完成后可用命令id test来检查以上配置是否生效
继续为cvs添加test用户,我这里为了减少出错机率,直接也生成了系统用户test,应该不需要以上步骤,有兴趣的朋友可以验证下
#htpasswd -cb /home/cvsroot/CVSROOT/passwd admin admin
创建cvs用户密码文件,创建用户admin,密码为admin,因其加密方式与apache的htpasswd相同;c参数用一次即可,添加下一个用户就不需要此参数了
#htpasswd -b /home/cvsroot/CVSROOT/passwd test test
添加test用户,密码为test
⑥启动inetd超级服务器进程,使其监听2401端口
/etc/rc.d/inetd start
重读配置文件/etc/rc.d/inetd reload
⑦用sockstat -4l查看系统正在监听的端口,查看2401端口是否正处于LISTENED状态
#sockstat -4l
freebsd用sockstat -l或者netstat -an来查看系统打开的端口,和使用此端口的进程及用户的信息。还可以用telnet localhost 2401来验证下看打开端口没有
⑧本机用户验证是否可以登录cvs服务器
# cvs -d:pserver:test@192.168.21.246:/home/cvsroot/ login
好了,CVS服务器在FreeBSD 8.1上的配置已经完成。按照上面的步骤下来,应该没有什么其他需要注意的问题。
下面再简单介绍一下如何使用:
Linux或FreeBSD远程如何连接
如果要能在shell下用到export命令,请注意你的shell是否是sh或bash,如果不是请更正
#export CVSROOT=:pserver:test@192.168.21.246:2401/home/cvsroot #cvs login Logging in to :pserver:test@192.168.238.128:2401/home/cvs/cvsroot CVS password: test
签出项目到本地
cvs checkout project
更新项目
cvs update
添加文件后需要提交,其语法基本跟SVN是一样的。
Windows下我习惯用TortoiseCVS来提交,配置也比较简单,具体设置见下列截图:
【编辑推荐】