2012年(3)
(45)
分类: bsd
2011-12-15 03:47:33
本文一步一步介绍了freebsd 8.1下cvs服务器的配置。svn服务器是版本控制系统(可以看作是cvs的生级),一般用于开发环境,用于多人协同开发项目的源代码管理;目常由于svn服务器的方便,它应该是版本控制系统的主流,尤其适用于集中式版本管理,当然git也是后起之秀,它适用于更大的项目,多用于分布式环境。
安装前的准备工作
系统是64位的freebsd 8.1,相关优化及配置我这里也不多费笔墨了(具体可以参考51cto的freebsd配置与优化专题)。将ports配置好,由于svn可以独立运行,也可以以apache附加的形式运行;我这里为了权限控制的方便,采用的是apache方式,所以这里第一步是配置apache,注意freebsd8.1第一次运行apache22还有点问题,这里下面再详细解释。
由于是内网环境,我这里直接以我的用户andrewy远程登陆,然后sudo su - 切换到root权限下操作;这个不是太推荐哈。
一、ports及vim优化是前提和基础,我这里不浪费时间解释。有兴趣的请搜索我以前的文章或googel,这里说下freebsd8.1下apache22的安装
cd /usr/ports/www/apache22
make with_berkeleydb=db4 install clean
增加的选项就是为了subversion得用的一个库【有很多的默认配置信息,选择默认就可以了】
安装完毕后,echo 'apache22_enable="yes" ' > /etc/rc.conf
习惯了sed的流编辑,不想用vim打开编辑,偷懒操作,呵呵。
freebsd8.1下启动apache22有个小bug,如果想像freebsd8下安装apache22一样直接就可以启动是不可能的。
解决方法:
vim /usr/local/etc/apache22/httpd.conf
用#号注释掉这一句
loadmodule unique_id_module libexec/apache22/mod_unique_id.so
记得修改servername 127.0.0.1:80,不然启动时apache22会提示
然后/usr/local/etc/rc.d/apache22 start没问题,可以用sockstat -4l验证
二、继续用ports安装svn
安装subversion
#cd /usr/ports/devel/subversion/
#make with_mod_dav_svn=yes install clean
我这里由于是以apache22的方式启动svn,所以apache的配置文件后需要增加如下代码
#vim /usr/local/etc/apache22/httpd.conf
dav svn
svnparentpath /data/svn
authzsvnaccessfile /data/svn/svn-acl-conf
authtype basic
authname "ewizweb svn server"
authuserfile /data/svn/svn-auth-file
require valid-user
mkdir -p /data/svn
chmod -r 755 /data/svn
三、配置svn的用户acl及用户权限文件。
下面是控制用户的acl文件
vim /data/svn/svn-acl-conf
[groups]
bolan_dev = web,andrwy,cc
test=test
[produce:/]
@bolan_dev= rw
@test=r
[rest:/]
@bolan_dev = rw
@test=r
此文件可以控制你的内网不同的开发小组,只允许他们访问各自的project;有些特殊用户(比如dirctor,可以让他看代码)上面的文件很简单,相信大家一看就明白了。
下面则是svn的用户验证文件,它是用apache的htpasswd加密,这个过程大家玩apache就应该很熟悉了。
apache和svn安装完后记得rehash,不然很多命令都看不到。
#htpasswd -c /etc/svn-auth-file andrewy,第一次添加用户时需要c参数,以后就不需要了。
添加用户
#htpaawd /etc/svn-auth-file test
正常启动svn后就可以在windows下用tortoisesvn正常连接svn服务器,checkout及commit了,安装完tortoisesvn后它会自动跟你的ie集成,你在你的工作目录新建一个目录—例如my_project,然后点右键“svn checkout”,输入正确的http地址即可,如下图:
总体感觉就是在freebsd下配置项目管理软件确实比linux下方便多了,我基本上将工作中的svn服务器全都迁徙到freebsd下了,希望这篇文档对大家有所帮助。