CentOS5 搭建并配置SVN服务器(X86)

本文将阐述如何在CentOS5系统上搭建SVN服务器。

本文内涉及到的命令除安装rpm、启动apache服务时使用root用户,其他均为普通用户。

文中的源码包需要大家去网上下载,rpm包在CentOS光盘中能够找到,网上肯定也会有。本文是32位系统安装文档,64位系统只需找对应的rpm包即可。

 

操作系统:CentOS5.2_x86

内核版本:2.6.18-194.el5

 

1、需要这几个包:

apr-1.3.9.tar.bz2

apr-util-1.3.9.tar.bz2

httpd-2.2.14.tar.bz2

sqlite-autoconf-3070602.tar.gz

zlib-1.2.3-3.i386.rpm

zlib-devel-1.2.3-3.i386.rpm

subversion-1.6.6.tar.bz2

 

2、目录结构说明:

/infowarelab/other_soft:是我机器上随意建的目录,apache3是apache的目录,因为机器上有很多apache,所以这个是apache3。

apr:后来编译svn时需要用到这个路径,记住即可

apr-util:后来编译svn时需要用到这个路径,记住即可

 

3、安装时也请务必按照第1步中包的顺序来,否则会出错。先解压缩:

1)安装apr-1.3.9.tar.bz2:

tar -jxf apr-1.3.9.tar.bz2

 

cd apr-1.3.9

./configure –prefix=/infowarelab/other_soft/apache3/apr

make

make install

2)安装apr-util-1.3.9.tar.bz2:

cd ..

tar -jxf apr-util-1.3.9.tar.bz2

cd apr-util-1.3.9

./configure –prefix=/infowarelab/other_soft/apache3/apr-util –with-apr=/infowarelab/other_soft/apache3/apr

make

make install

3)安装httpd-2.2.14.tar.bz2:

cd ..

tar -jxf httpd-2.2.14.tar.bz2

cd httpd-2.2.14

./configure -enable-dav -enable-so -enable-maintainer-mode –prefix=/infowarelab/other_soft/apache3/–with-apr=/infowarelab/other_soft/apache3/apr  –with-apr-util=/infowarelab/other_soft/apache3/apr-util

make

make install

4)安装sqlite-autoconf-3070602.tar.gz

cd ..

tar -jxf sqlite-autoconf-3070602.tar.gz

./configure –prefix=/infowarelab/other_soft/sqlite/

make

make install

 

4、上面的源码包安装完毕,现在来安装rpm包:

安装之前请先确认系统中是否存在这些包,如果存在就不用装了:)。

rpm -qa|grep zlib

一般来说zlib-1.2.3-3和zlib-devel-1.2.3-3都会被系统自动安装,zlib-devel-1.2.3-3没有装的几率稍大一些,因为我这台机器是服务器,大多数软件包都没有装,所以zlib-devel-1.2.3-3这个包没有,于是我只需要装zlib-devel-1.2.3-3即可:

 

rpm -ivh zlib-devel-1.2.3-3.i386.rpm

 

这样就搞定了。好了,准备工作都已经做完了,现在开始安装SVN的最后一步—SVN源码包

 

5、安装SVN主程序

tar -jxf subversion-1.6.6.tar.bz2

cd subversion-1.6.6

./configure –with-apxs=/infowarelab/other_soft/apache3/bin/apxs–prefix=/infowarelab/other_soft/subversion166 –with-apr=/infowarelab/other_soft/apache3/apr –with-apr-util=/infowarelab/other_soft/apache3/apr-util/ –with-zlib=/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/Compress/Zlib/ –enable-maintainer-mode  –with-sqlite=/infowarelab/other_soft/sqlite/

make

make install

 

6、在第5步make时会提示DBD问题,那只是个警告,不用理他,直接make install即可。没有Compress/Zlib需要运行命令“yum install perl-Compress-Zlib”。提示/usr/bin/缺少lexpact,如果是64位系统: ln -s /lib64/libexpact.so.1 /usr/lib/libexpact.so,如果是32位:ln -s /lib/libexpact.so.1 /usr/lib/libexpact.so。然后重新make即可

至此,SVN已经安装完成。

7、配置SVN

mkdir /infowarelab/other_soft/svn_project/

cd /infowarelab/other_soft/subversion166/bin/

svnadmin create /infowarelab/other_soft/svn_project/myproject (建立版本库)

chmod 777 /infowarelab/other_soft/svn_project/myproject

cd /infowarelab/other_soft/apache3/bin/

./htpasswd -c /infowarelab/other_soft/svn_project/zt_pwdfile mm (第一次需要创建用户文件,使用-c参数。第二次新加用户时将-c去掉:./htpasswd /infowarelab/other_soft/svn_project/zt_pwdfile gg)

vim /infowarelab/other_soft/apache3/conf/httpd.conf,添加如下内容:

 

 

DAV svn
SVNParentPath “/infowarelab/other_soft/svn_project/”
AuthzSVNAccessFile “/infowarelab/other_soft/svn_project/authz.conf”
AuthType Basic
AuthName “Subversion.zoneyump”
AuthUserFile “/infowarelab/other_soft/svn_project/zt_pwdfile”
Require valid-user

 

vim /infowarelab/other_soft/svn_project/authz.conf,内容如下:


[myproject:/] gg = r
mm = rw

上面这个文件是说,在svn下,可以往myproject里写(上传)工程的是mm,gg只能下载(只读)。

 

到这里svn就算配置完成了,启动apache:

/infowarelab/other_soft/apache3/bin/apachectl -k start

 

输入网址“http://192.168.1.xxx/svn/myproject”,登陆后就能看到里面的工程了。不过现在应该是什么也没有的(myproject – Revision 0: / )

 

8、SVN备份与还原

svn备份常用命令
1)完全备份和增量备份svn。
svnadmin   dump  /svn/project/www     > full.svn.bak        #完全备份/svn/project/www这个版本库,并另存为full.svn.bak
svnadmin   dump  /svn/project/www  -r 8 –incremental    >  svn.bak.1       #以增量把版本库8转存到svn.bak.1

参数介绍:
-r [–revision] :指定版本ARG(或X:Y范围)
–incremental   :以增量方式进行转存
–deltas        :在转存输出中使用差异
-q [–quiet]    :在标准错误输出不显示进度(仅错误)

2)dump备份还原。
svnadmin   create  /svn/project/test   #创建一个新的版本库
svnadmin   load    /svn/project/test     <  full.svn.bak      #现还原完全备份
svnadmin   load    /svn/project/test     <   svn.bak.1        #再还原增量备份的内容

3)svnadmin hotcopy  /svn/project/www     /root/backup.svn.www/         #热拷贝www这个版本库,可以直接拿来用

 

若哪里不对还望大家指出,谢谢!

 

 

20111125添加:

svn delete http://192.168.1.254/svn/工程名 -m “delete test file”

 

bz2压缩包还原:

bzcat dump.bz2 | svnadmin load 版本库路径

3 comments on “CentOS5 搭建并配置SVN服务器(X86)

Submit comment

Allowed HTML tags: <a href="http://google.com">google</a> <strong>bold</strong> <em>emphasized</em> <code>code</code> <blockquote>
quote
</blockquote>