本文将阐述如何在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,添加如下内容:
vim /infowarelab/other_soft/svn_project/authz.conf,内容如下:
上面这个文件是说,在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 版本库路径