FreeBSD 8.1下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

注:

  1. root是执行cvs进程的用户
  2. /usr/bin/cvs是cvs可执行文件的存储路径
  3. /usr/bin/cvs是cvs可执行文件存放的路径,要保证/usr/bin/里有cvs可执行文件;
  4. 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:[email protected]:/home/cvsroot/ login

好了,CVS服务器在FreeBSD 8.1上的配置已经完成。按照上面的步骤下来,应该没有什么其他需要注意的问题。

下面再简单介绍一下如何使用:

Linux或FreeBSD远程如何连接

如果要能在shell下用到export命令,请注意你的shell是否是sh或bash,如果不是请更正

#export CVSROOT=:pserver:[email protected]:2401/home/cvsroot
#cvs login
Logging in to :pserver:[email protected]:2401/home/cvs/cvsroot
CVS password: test

签出项目到本地

cvs checkout project

更新项目

cvs update

添加文件后需要提交,其语法基本跟SVN是一样的。

相关推荐