一,安装要的软件
subversion-1.6.18.tar.gz,subversion-deps-1.6.18.tar.gz
svn的官方网址是http://subversion.tigris.org
上面二个压缩文件解压后会放到同一个文件下,不要另建文件夹
二,安装独立svn
一般编译安装软件的步骤,所需整个流程如下:
tar zxvf subversion-1.6.8.tar.gz
tar zxvf subversion-deps-1.6.8.tar.gz
cd subversion-1.6.8/
./configure --prefix=/usr/local/svn
make
make install
当然,整个过程并不是这么顺利,下面列出安装所遇到的问题:
1、执行./configure --prefix=/usr/local/svn,提示no acceptable C compiler found in $PATH,如下图
原因是没有安装gcc编译器,解决办法:因为是centos linux,默认可以采用yum方式安装,则采用如下命令安装gcc编译器即可:
# yum -y install gcc
2、再次执行./configure --prefix=/usr/local/svn,提示
检查是否安装 expat2 (rpm -qa | grep expat2 检查是否安装 expat2)如果没有请在http://sourceforge.net/projects/expat/files/下载,安装命令如下:
tar zxvf expat-2.0.1.tar.gz
cd expat-2.0.1
./configure
make
make install
3、再次执行./configure --prefix=/usr/local/svn,提示
这是因为没有安装openssl相关包, openssl官方网址:http://www.openssl.org/
疑问:在/usr/bin目录下已经有openssl了,不知道如何指定。现在的作法重新另安装一遍openssl
linux下openssl的安装:
wget http://www.openssl.org/source/openssl-1.0.0g.tar.gz
tar zxvf openssl-1.0.0g.tar.gz
cd openssl-1.0.0g
./config --prefix=/usr/local/ssl shared zlib-dynamic enable-camellia
make
make install
执行make时,会提示如下错误:
c_zlib.o c_zlib.c
c_zlib.c:25:18: 错误:zlib.h:没有那个文件或目录
c_zlib.c:98: 错误:expected ‘)’ before ‘*’ token
c_zlib.c:100: 错误:expected ‘)’ before ‘strm’
c_zlib.c:101: 错误:expected ‘)’ before ‘strm’
c_zlib.c:102: 错误:expected ‘)’ before ‘strm’
c_zlib.c:104: 错误:expected ‘)’ before ‘strm’
c_zlib.c:105: 错误:expected ‘)’ before ‘strm’
c_zlib.c:106: 错误:expected ‘)’ before ‘strm’
c_zlib.c:109: 错误:expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘p_c ompress’
c_zlib.c:110: 错误:expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘p_i nflateEnd’
c_zlib.c:111: 错误:expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘p_i nflate’
c_zlib.c:112: 错误:expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘p_i nflateInit_’
c_zlib.c:113: 错误:expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘p_d eflateEnd’
c_zlib.c:114: 错误:expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘p_d eflate’
c_zlib.c:115: 错误:expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘p_d eflateInit_’
c_zlib.c:133: 错误:expected specifier-qualifier-list before ‘z_stream’
c_zlib.c: In function ‘zlib_stateful_init’:
c_zlib.c:148: 错误:‘struct zlib_state’ 没有名为 ‘istream’ 的成员
c_zlib.c:149: 错误:‘struct zlib_state’ 没有名为 ‘istream’ 的成员
c_zlib.c:150: 错误:‘struct zlib_state’ 没有名为 ‘istream’ 的成员
c_zlib.c:150: 错误:‘Z_NULL’ 未声明 (在此函数内第一次使用)
c_zlib.c:150: 错误:(即使在一个函数内多次出现,每个未声明的标识符在其
c_zlib.c:150: 错误:所在的函数内只报告一次。)
c_zlib.c:151: 错误:‘struct zlib_state’ 没有名为 ‘istream’ 的成员
c_zlib.c:152: 错误:‘struct zlib_state’ 没有名为 ‘istream’ 的成员
c_zlib.c:153: 错误:‘struct zlib_state’ 没有名为 ‘istream’ 的成员
c_zlib.c:154: 错误:‘struct zlib_state’ 没有名为 ‘istream’ 的成员
c_zlib.c:155: 警告:隐式声明函数 ‘p_inflateInit_’
c_zlib.c:155: 错误:‘struct zlib_state’ 没有名为 ‘istream’ 的成员
c_zlib.c:156: 错误:‘ZLIB_VERSION’ 未声明 (在此函数内第一次使用)
c_zlib.c:156: 错误:‘z_stream’ 未声明 (在此函数内第一次使用)
c_zlib.c:157: 错误:‘Z_OK’ 未声明 (在此函数内第一次使用)
c_zlib.c:160: 错误:‘struct zlib_state’ 没有名为 ‘ostream’ 的成员
c_zlib.c:161: 错误:‘struct zlib_state’ 没有名为 ‘ostream’ 的成员
c_zlib.c:162: 错误:‘struct zlib_state’ 没有名为 ‘ostream’ 的成员
c_zlib.c:163: 错误:‘struct zlib_state’ 没有名为 ‘ostream’ 的成员
c_zlib.c:164: 错误:‘struct zlib_state’ 没有名为 ‘ostream’ 的成员
c_zlib.c:165: 错误:‘struct zlib_state’ 没有名为 ‘ostream’ 的成员
c_zlib.c:166: 错误:‘struct zlib_state’ 没有名为 ‘ostream’ 的成员
c_zlib.c:167: 警告:隐式声明函数 ‘p_deflateInit_’
c_zlib.c:167: 错误:‘struct zlib_state’ 没有名为 ‘ostream’ 的成员
c_zlib.c:167: 错误:‘Z_DEFAULT_COMPRESSION’ 未声明 (在此函数内第一次使用)
c_zlib.c: In function ‘zlib_stateful_finish’:
c_zlib.c:185: 警告:隐式声明函数 ‘p_inflateEnd’
c_zlib.c:185: 错误:‘struct zlib_state’ 没有名为 ‘istream’ 的成员
c_zlib.c:186: 警告:隐式声明函数 ‘p_deflateEnd’
c_zlib.c:186: 错误:‘struct zlib_state’ 没有名为 ‘ostream’ 的成员
c_zlib.c: In function ‘zlib_stateful_compress_block’:
c_zlib.c:194: 错误:‘Z_OK’ 未声明 (在此函数内第一次使用)
c_zlib.c:202: 错误:‘struct zlib_state’ 没有名为 ‘ostream’ 的成员
c_zlib.c:203: 错误:‘struct zlib_state’ 没有名为 ‘ostream’ 的成员
c_zlib.c:204: 错误:‘struct zlib_state’ 没有名为 ‘ostream’ 的成员
c_zlib.c:205: 错误:‘struct zlib_state’ 没有名为 ‘ostream’ 的成员
c_zlib.c:207: 警告:隐式声明函数 ‘p_deflate’
c_zlib.c:207: 错误:‘struct zlib_state’ 没有名为 ‘ostream’ 的成员
c_zlib.c:207: 错误:‘Z_SYNC_FLUSH’ 未声明 (在此函数内第一次使用)
c_zlib.c:215: 错误:‘struct zlib_state’ 没有名为 ‘ostream’ 的成员
c_zlib.c: In function ‘zlib_stateful_expand_block’:
c_zlib.c:221: 错误:‘Z_OK’ 未声明 (在此函数内第一次使用)
c_zlib.c:230: 错误:‘struct zlib_state’ 没有名为 ‘istream’ 的成员
c_zlib.c:231: 错误:‘struct zlib_state’ 没有名为 ‘istream’ 的成员
c_zlib.c:232: 错误:‘struct zlib_state’ 没有名为 ‘istream’ 的成员
c_zlib.c:233: 错误:‘struct zlib_state’ 没有名为 ‘istream’ 的成员
c_zlib.c:235: 警告:隐式声明函数 ‘p_inflate’
c_zlib.c:235: 错误:‘struct zlib_state’ 没有名为 ‘istream’ 的成员
c_zlib.c:235: 错误:‘Z_SYNC_FLUSH’ 未声明 (在此函数内第一次使用)
c_zlib.c:243: 错误:‘struct zlib_state’ 没有名为 ‘istream’ 的成员
c_zlib.c: In function ‘COMP_zlib’:
c_zlib.c:355: 错误:‘p_compress’ 未声明 (在此函数内第一次使用)
c_zlib.c:356: 错误:‘compress_ft’ 未声明 (在此函数内第一次使用)
c_zlib.c:356: 错误:expected ‘;’ before ‘DSO_bind_func’
c_zlib.c:358: 错误:‘p_inflateEnd’ 未声明 (在此函数内第一次使用)
c_zlib.c:359: 错误:‘inflateEnd_ft’ 未声明 (在此函数内第一次使用)
c_zlib.c:359: 错误:expected ‘;’ before ‘DSO_bind_func’
c_zlib.c:361: 错误:‘p_inflate’ 未声明 (在此函数内第一次使用)
c_zlib.c:362: 错误:‘inflate_ft’ 未声明 (在此函数内第一次使用)
c_zlib.c:362: 错误:expected ‘;’ before ‘DSO_bind_func’
c_zlib.c:364: 错误:‘p_inflateInit_’ 未声明 (在此函数内第一次使用)
c_zlib.c:365: 错误:‘inflateInit__ft’ 未声明 (在此函数内第一次使用)
c_zlib.c:365: 错误:expected ‘;’ before ‘DSO_bind_func’
c_zlib.c:367: 错误:‘p_deflateEnd’ 未声明 (在此函数内第一次使用)
c_zlib.c:368: 错误:‘deflateEnd_ft’ 未声明 (在此函数内第一次使用)
c_zlib.c:368: 错误:expected ‘;’ before ‘DSO_bind_func’
c_zlib.c:370: 错误:‘p_deflate’ 未声明 (在此函数内第一次使用)
c_zlib.c:371: 错误:‘deflate_ft’ 未声明 (在此函数内第一次使用)
c_zlib.c:371: 错误:expected ‘;’ before ‘DSO_bind_func’
c_zlib.c:373: 错误:‘p_deflateInit_’ 未声明 (在此函数内第一次使用)
c_zlib.c:374: 错误:‘deflateInit__ft’ 未声明 (在此函数内第一次使用)
c_zlib.c:374: 错误:expected ‘;’ before ‘DSO_bind_func’
c_zlib.c: 在顶层:
c_zlib.c:432: 错误:expected specifier-qualifier-list before ‘z_stream’
c_zlib.c: In function ‘bio_zlib_new’:
c_zlib.c:489: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘obuf’ 的成员
c_zlib.c:491: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘obufsize’ 的成员
c_zlib.c:492: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘zin’ 的成员
c_zlib.c:492: 错误:‘Z_NULL’ 未声明 (在此函数内第一次使用)
c_zlib.c:493: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘zin’ 的成员
c_zlib.c:494: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘zin’ 的成员
c_zlib.c:495: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘zin’ 的成员
c_zlib.c:496: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘zin’ 的成员
c_zlib.c:497: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘zin’ 的成员
c_zlib.c:498: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘zout’ 的成员
c_zlib.c:499: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘zout’ 的成员
c_zlib.c:500: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘zout’ 的成员
c_zlib.c:501: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘zout’ 的成员
c_zlib.c:502: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘zout’ 的成员
c_zlib.c:503: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘zout’ 的成员
c_zlib.c:504: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘odone’ 的成员
c_zlib.c:505: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘comp_level’ 的成员
c_zlib.c:505: 错误:‘Z_DEFAULT_COMPRESSION’ 未声明 (在此函数内第一次使用)
c_zlib.c: In function ‘bio_zlib_free’:
c_zlib.c:520: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘zin’ 的成员
c_zlib.c:523: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘obuf’ 的成员
c_zlib.c:526: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘zout’ 的成员
c_zlib.c:527: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘obuf’ 的成员
c_zlib.c: In function ‘bio_zlib_read’:
c_zlib.c:540: 错误:‘z_stream’ 未声明 (在此函数内第一次使用)
c_zlib.c:540: 错误:‘zin’ 未声明 (在此函数内第一次使用)
c_zlib.c:543: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘zin’ 的成员
c_zlib.c:553: 警告:隐式声明函数 ‘inflateInit’
c_zlib.c:567: 错误:‘Z_OK’ 未声明 (在此函数内第一次使用)
c_zlib.c:567: 错误:‘Z_STREAM_END’ 未声明 (在此函数内第一次使用)
c_zlib.c: In function ‘bio_zlib_write’:
c_zlib.c:601: 错误:‘z_stream’ 未声明 (在此函数内第一次使用)
c_zlib.c:601: 错误:‘zout’ 未声明 (在此函数内第一次使用)
c_zlib.c:604: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘odone’ 的成员
c_zlib.c:605: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘zout’ 的成员
c_zlib.c:607: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘obuf’ 的成员
c_zlib.c:609: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘obuf’ 的成员
c_zlib.c:609: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘obufsize’ 的成员
c_zlib.c:611: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘obuf’ 的成员
c_zlib.c:616: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘optr’ 的成员
c_zlib.c:616: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘obuf’ 的成员
c_zlib.c:617: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘ocount’ 的成员
c_zlib.c:618: 警告:隐式声明函数 ‘deflateInit’
c_zlib.c:618: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘comp_level’ 的成员
c_zlib.c:619: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘obuf’ 的成员
c_zlib.c:620: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘obufsize’ 的成员
c_zlib.c:628: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘ocount’ 的成员
c_zlib.c:629: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘optr’ 的成员
c_zlib.c:629: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘ocount’ 的成员
c_zlib.c:638: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘optr’ 的成员
c_zlib.c:639: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘ocount’ 的成员
c_zlib.c:649: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘optr’ 的成员
c_zlib.c:649: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘obuf’ 的成员
c_zlib.c:650: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘obuf’ 的成员
c_zlib.c:651: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘obufsize’ 的成员
c_zlib.c:654: 错误:‘Z_OK’ 未声明 (在此函数内第一次使用)
c_zlib.c:661: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘ocount’ 的成员
c_zlib.c:661: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘obufsize’ 的成员
c_zlib.c: In function ‘bio_zlib_flush’:
c_zlib.c:669: 错误:‘z_stream’ 未声明 (在此函数内第一次使用)
c_zlib.c:669: 错误:‘zout’ 未声明 (在此函数内第一次使用)
c_zlib.c:672: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘obuf’ 的成员
c_zlib.c:672: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘odone’ 的成员
c_zlib.c:672: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘ocount’ 的成员
c_zlib.c:673: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘zout’ 的成员
c_zlib.c:681: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘ocount’ 的成员
c_zlib.c:683: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘optr’ 的成员
c_zlib.c:683: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘ocount’ 的成员
c_zlib.c:689: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘optr’ 的成员
c_zlib.c:690: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘ocount’ 的成员
c_zlib.c:692: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘odone’ 的成员
c_zlib.c:697: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘optr’ 的成员
c_zlib.c:697: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘obuf’ 的成员
c_zlib.c:698: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘obuf’ 的成员
c_zlib.c:699: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘obufsize’ 的成员
c_zlib.c:701: 错误:‘Z_FINISH’ 未声明 (在此函数内第一次使用)
c_zlib.c:702: 错误:‘Z_STREAM_END’ 未声明 (在此函数内第一次使用)
c_zlib.c:702: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘odone’ 的成员
c_zlib.c:703: 错误:‘Z_OK’ 未声明 (在此函数内第一次使用)
c_zlib.c:710: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘ocount’ 的成员
c_zlib.c:710: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘obufsize’ 的成员
c_zlib.c: In function ‘bio_zlib_ctrl’:
c_zlib.c:725: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘ocount’ 的成员
c_zlib.c:726: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘odone’ 的成员
c_zlib.c:765: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘obuf’ 的成员
c_zlib.c:767: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘obuf’ 的成员
c_zlib.c:768: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘obuf’ 的成员
c_zlib.c:770: 错误:‘BIO_ZLIB_CTX’ 没有名为 ‘obufsize’ 的成员
make[2]: *** [c_zlib.o] 错误 1
make[2]: Leaving directory `/soft/openssl-1.0.0g/crypto/comp'
make[1]: *** [subdirs] 错误 1
make[1]: Leaving directory `/soft/openssl-1.0.0g/crypto'
make: *** [build_crypto] 错误 1
[root@localhost openssl-1.0.0g]#
是因为centos自带的zlib函数不完整。重新编译安装subversion自带的zlib即可,进入/soft/subversion1.6.18/zlib目录下,./configure,make, make install即可
安装openssl之后会在/usr/local下生成一个ssl目录,设置环境变量,在/etc/profile的PATH中增加如下内容:
PATH=/usr/local/ssl/bin:$PATH
export PATH
编辑/etc/ld.so.conf, 添加路径/usr/local/ssl/lib、/usr/local/lib(因为svn的一些命令如svnserve会用到这些库函数),添加到共享库,并使用ldconfig命令使之生效
4、安装openssl后,执行,仍会提示上面的那个错误,加上--with-openssl=/usr/local/ssl后,执行成功。命令如下:
./configure --prefix=/usr/local/svn --with-openssl=/usr/local/ssl
解决完上面的问题之后,configure完成可能会出现:
You don’t seem to have Berkeley DB version 4.0.14or newer installed and linked to APR-UTIL. We havecreated Makefiles which will build without the Berkeley DB back-end; yourrepositories will use FSFS as the default back-end. You can findthe latest version of Berkeley DB here: http://www.oracle.com/technology/software/products/berkeley-db/index.html 这个提示可以跳过, 因为不使用BDB存储。到此为止,svn基本可以安装上了。下面进行一些其他的配置
三,配置svn
1、添加环境变量: vi /etc/profile
PATH=$PATH:/usr/local/svn/bin
export PATH
2、测试SVN是否安装成功,执行:
svnserve --version
如果显示版本信息, 则安装成功.
3、建个svn的根目录,因为项目不只一个
mkdir -p /home/svn #-p的意思是说如果没有父目录建之
4、建个svn仓库
svnadmin create /home/svn/repository
5、修改svnserve.conf,如下:
anon-access = none #使非授权用户无法访问
auth-access = write #使授权用户有写权限
password-db = passwd #指明密码文件路径
authz-db = authz #访问控制文件
其它采用默认配置. 各语句都必须顶格写, 左侧不能留空格, 否则会出错
6、修改权限控制文件authz,如下[groups]
admin= lqh
[repository:/]
@admin = rw
* = r
指令简介:此配置文件采用“基于路径的授权”策略,中括号里指定路径,以下列出对各用户的授权。包括只读r,读写rw。没有列出的用户,则不允许访问。还可以对用户分组,具体请参考svn手册,以下是简单例子:
用户组格式:
[groups]
<用户组名> = <用户1>,<用户2>
其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔
版本库目录格式:
[<版本库>:/项目/目录]
@<用户组名> = <权限>
<用户名> = <权限>
其中,方框号内部分可以有多种写法:
/,表示根目录及以下。根目录是svnserve启动时指定的,我们指定/home/svn。这样,/就是表示对全部版本库设置权限。
repos1:/,表示对版本库1设置权限
repos2:/abc, ,表示对版本库2中的abc项目设置权限
repos2:/abc/aaa,,表示对版本库2中的abc项目的aaa目录设置权限
权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。权限可以是w、r、wr和空,空表示没有任何权限。
7、修改用户名密码文件passd
[users]
lqh = *****
四,启动和简单测试
1、启动svn服务。启动命令为:svnserve -d -r 服务的根目录。例如,
svnserve -d -r /home/svn
在这里特别的要注意,/home/svn是仓库的根目录,不要和[repository:/]目录重叠了。此外,还可通过--listen-port指定监听端口等内容。可查看svnserve --help进行帮助查看
2、将其设为开机自启动服务,vi /etc/rc.local,添加:
/usr/local/svn/bin/svnserve -d -r /home/svn即可
注:svn默认端口是3690 ,所以注意防火墙是否开放该端口。