本文将详细介绍centos5如何搭建svn服务器。包括apache,subversion的安装和一些简单的配置。
apache下载地址:http://www.apache.org/dist//httpd/httpd-2.2.20.tar.gz
通过tar -zxvf httpd-2.2.20.tar.gz 解压,进入解压后的文件夹,执行
./configure --enable-dav --enable-so --prefix=/usr/local/apache2
其中,–enable-dav允许Apache提供DAV协议支持;–enable-so允许运行时加载DSO模块,前两个参数是必须要加的,–prefix 是安装的位置。如果configure通过,接着执行
make && make install
数分钟后就完事了,通过 /usr/local/apache2/bin/apachectl -k start 来启动,在浏览器中访问127.0.0.1,如果出现 It’s Works!,那么说明安装成功。
Subversion需要需要下载两个文件subversion-1.6.17.tar.bz2和subversion-deps-1.6.17.tar.bz2,它们的下载地址是
http://subversion.tigris.org/downloads/subversion-1.6.17.tar.bz2
http://subversion.tigris.org/downloads/subversion-deps-1.6.17.tar.bz2
分别解压subversion-1.6.17.tar.bz2和subversion-deps-1.6.17.tar.bz2,解压后他们都在subversion-1.6.17这个文件夹下,然后执行configure,命令如下
./configure --with-apxs=/opt/apache2/bin/apxs --with-apr=/usr/local/apache2 --with-apr-util=/usr/local/apache2 --prefix=/usr/local/subversion-1.6.7
其中,–with-apxs 用于生成apache httpd的mod_dav_svn和mod_authz_svn模块;–with-apr 和 –with-apr-util=参数指向 Apache 的安装根目录,而不是使用缺省的 SVN 安装包中自带的 apr ,否则如果你安装的 Apache 版本不同有可能导致 APR 库不匹配,出现类似 Can’t set position pointer in file ‘/svn/test/db/revs/1′: Invalid argument 的错误,–prefix 是安装的位置。中间可能会出现某些库找不到的情况,根据提示用yum来搞定。configure成功后,执行编译和安装,即
make && make install
如果没有报错,svn就成功安装好了。对于版本1.8+,可能需要通过如下命令把对应 so 文件 copy 到apache 目录。
cp subversion/mod_authz_svn/.libs/mod_authz_svn.so /usr/local/apache/modules/
cp subversion/mod_dav_svn/.libs/mod_dav_svn.so /usr/local/apache/modules/
假设我们把版本库建立在/opt/svnroot 目录下,那么在/opt/svnroot目录下执行mkdir repository新建版本库文件夹,通过svnadmin create repository/test命令可创建名为test的版本库。若创建成功,则subversion的安装便已成功完成。使用mkdir -p import/{trunk,branches,tags} 命令在/opt/svnroot目录下建立一个名为import的新文件夹,包含trunk、branches、tags 三个子目录。下面这条语句将把路径/opt/svnroot/import下的目录和文件导入到你创建的Subversion 仓库中去,提交后的修订版为1。
svn import /opt/svnroot/import file:///opt/svnroot/repository/test -m "Init repository"
这里/opt/svnroot/import可以使用相对路径,但file:///opt/svnroot/repository/test必须以绝对路径表示。