经过测试基本都OK,有什么地方错误的话大家指出,共同学习Think。Email:
1> 软件下载 系统为RHEL-5.7-64 注:系统在默认情况下,是已经有apr-util及apr这两个包的版本较低,只支持subversion 1.4,而subversion要求较高的版本,所以要删除系统自带的apr,apr-util这两个包编译新的版本来支持。 2> 软件安装 [root@test ~]# rpm -qa | grep apr apr-1.2.7-11.el5_6.5 apr-1.2.7-11.el5_6.5 apr-util-1.2.7-11.el5_5.2 apr-util-1.2.7-11.el5_5.2 [root@test ~]# rpm -e --allmatches apr --nodeps [root@test ~]# rpm -e --allmatches apr-util --nodeps 或者 [root@test ~]# rpm -qa | grep subversion [root@test ~]# yum remove subversion [root@test ~]# yum remove apr [root@test ~]# rpm -qa | grep apr [root@test ~]# cd /usr/local/src/svnsoft/ [root@test svnsoft]# ls apr-1.4.6.tar.gz httpd-2.2.22.tar.gz subversion-1.7.4.tar.gz apr-util-1.4.1.tar.gz sqlite-autoconf-3071000.tar.gz [root@test svnsoft]# tar zxvf apr-1.4.6.tar.gz [root@test svnsoft]# cd apr-1.4.6 [root@test apr-1.4.6]# ./configure --prefix=/usr/local/apr [root@test apr-1.4.6]# make && make install [root@test apr-1.4.6]# cd .. [root@test svnsoft]# tar zxvf apr-util-1.4.1.tar.gz [root@test svnsoft]# cd apr-util-1.4.1 [root@test apr-util-1.4.1]# ./configure --prefix=/usr/local/apr-util/ --with-apr=/usr/local/apr/ [root@test apr-util-1.4.1]# make && make install [root@test apr-util-1.4.1]# cd .. [root@test svnsoft]# tar zxvf httpd-2.2.22.tar.gz [root@test svnsoft]# cd httpd-2.2.22 [root@test httpd-2.2.22]# ./configure --prefix=/usr/local/apache2 --enable-modules=all --enable-mods-shared=all --enable-dav --enable-dav-fs --enable-so --with-mpm=prefork --enable-ssl --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/ [root@test httpd-2.2.22]# make && make install [root@test httpd-2.2.22]# cd .. [root@test svnsoft]# tar zxvf subversion-1.7.4.tar.gz 编译subversion的时候会报错,说sqlite文件,可以如下解决 [root@test svnsoft]# cd subversion-1.7.4 [root@test subversion-1.7.4]# mkdir sqlite-amalgamation [root@test subversion-1.7.4]# cd .. [root@test svnsoft]# tar zxvf sqlite-autoconf-3071000.tar.gz [root@test svnsoft]# cd sqlite-autoconf-3071000 [root@test sqlite-autoconf-3071000]# cp sqlite3.c ../subversion-1.7.4/sqlite-amalgamation/ [root@test sqlite-autoconf-3071000]# cd .. [root@test svnsoft]# cd subversion-1.7.4 [root@test subversion-1.7.4]# ./configure --prefix=/usr/local/subversion-1.7.4 --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/ --with-ssl --with-zlib --enable-maintainer-mode [root@test subversion-1.7.4]# make && make install [root@test subversion-1.7.4]# vim /etc/profile(添加以下内容) PATH=/usr/local/subversion-1.7.4/binPATH export LC_ALL=C [root@test subversion-1.7.4]# source /etc/profile [root@test subversion-1.7.4]# svnserve --version 回车显示版本说明安装成功 svnserve, version 1.7.4 (r1295709) compiled Mar 20 2012, 17:33:24 Copyright (C) 2012 The Apache Software Foundation. This software consists of contributions made by many people; see the NOTICE file for more information. Subversion is open source software, see The following repository back-end (FS) modules are available: * fs_fs : Module for working with a plain file (FSFS) repository. Cyrus SASL authentication is available. [root@test subversion-1.7.4]# 3> 配置 查看apache是否有生成相应的模块 [root@test subversion-1.7.4]# ls /usr/local/apache2/modules/ | grep svn mod_authz_svn.so mod_dav_svn.so [root@test subversion-1.7.4]# 如果没有的话拷贝相关库过去即可 [root@test subversion-1.7.4]# cp ./subversion/mod_dav_svn/.libs/mod_dav_svn.so /usr/local/apache2/modules/ cp: overwrite `/usr/local/apache2/modules/mod_dav_svn.so'? [root@test subversion-1.7.4]# cp ./subversion/mod_authz_svn/.libs/mod_authz_svn.so /usr/local/apache2/modules/ cp: overwrite `/usr/local/apache2/modules/mod_authz_svn.so'? [root@test subversion-1.7.4]# 创建SVN相关目录 [root@test ~]# groupadd svn [root@test ~]# useradd -s /sbin/nologin svn -g svn [root@test ~]# mkdir -p /data/svn/data [root@test ~]# chown -R svn:svn /data/svn/data/ 建立版本库 [root@test ~]# svnadmin create /data/svn/data/svndata 如果报错(系统安装时安装subversion) svnadmin: error while loading shared libraries: libaprutil-1.so.0: cannot open shared object file: No such file or directory 出现这个错误的原因就是svnserver在编译时是加了apache支持的,现在无法找到apr-util库,一般情况下我们将apr-util的lib目录加入到系统的lib路径中就可以了 vim /etc/ld.so.conf /usr/local/apr/lib /usr/local/apr-util/lib ldconfig -v OK 添加svn的验证文件svn_auth.conf (网页浏览) [root@test ~]# /usr/local/apache2/bin/htpasswd -cm /data/svn/svn_auth.conf test New password: Re-type new password: Adding password for user test [root@test ~]# 注:只有第一次需要加-c参数,后期再添加用戶千万不能加-c,否则会将原文件覆盖,如下: [root@test ~]# /usr/local/apache2/bin/htpasswd -m /data/svn/svn_auth.conf think (-m是MD5加密) New password: Re-type new password: Adding password for user think [root@test ~]# 配置svn权限authz [root@test ~]# vim /data/svn/data/svndata/conf/authz [groups] admin = svnadmin [/] @admin = rw [test:/] @svn = rw 配置svn账户密码passwd [root@test ~]# vim /data/svn/data/svndata/conf/passwd [users] svnadmin = 123456 配置svn配置文件svnserve.conf [root@test ~]# vim /data/svn/data/svndata/conf/svnserve.conf [general] anon-access = read(或者none) auth-access = write password-db = passwd authz-db = authz realm = My First Repository 配置svn权限控制文件svn_access.conf(网页) [root@test ~]# vim /data/svn/svn_access.conf [groups] svn = test,think [/] * = r [test:/] @svn = rw 配置apache [root@test ~]# cp /usr/local/apache2/conf/httpd.conf /usr/local/apache2/conf/httpd.conf.bak [root@test ~]# vim /usr/local/apache2/conf/httpd.conf 找到Listen 80 改为Listen 10080(注:或者就默认的80端口) 查找LoadModule,在末尾加入: # for svn LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so 并在配置文件最后加入: # for svn Include conf/extra/httpd_svn.conf Apache配置文件httpd_svn.conf [root@test ~]# vim /usr/local/apache2/conf/extra/httpd_svn.conf <Location /svn> DAV svn SVNParentPath /data/svn/data AuthType Basic AuthName "Subversion repository" AuthUserFile /data/svn/svn_auth.conf Require valid-user AuthzSVNAccessFile /data/svn/svn_access.conf </Location> 配置详解: AuthUserFile /data/svn/svn_auth.conf指定的是基于网页SVN访问帐号文件 AuthzSVNAccessFile /data/svn/svn_access.conf指定的是基于网页SVN的访问控制文件 [root@test ~]# /usr/local/apache2/bin/apachectl start [root@test ~]# /usr/local/subversion-1.7.4/bin/svnserve -d -r /data/svn/data/ [root@test ~]# ps -ef | grep svnserve [root@test ~]# ps -ef | grep httpd 加入开机启动 vim /etc/rc.local /usr/local/apache2/bin/apachectl start /usr/local/subversion-1.7.4/bin/svnserve -d -r /data/svn/data/svndata 在浏览器中输入:http://IP/svn/svndata TortoiseSVN软件:svn://IP/svndata/ Linux下:svn co svn://IP/svndata,然后修改文件后提交到服务器 svn ci -m "test" readme.txt(ci为commit,-m是记录的log信息,可以为空,test为注释) svn版本回滚 windows版:右键tortoiseSVN-->update to revision 你只要填入你想要回退的版本就可以马上恢复 linux版:svn up -r 1(即恢复到版本1)