SVN服务器安装全程
一.所需软件
1.subversion-1.7.2.tar.gz
2.apr-1.3.8.tar.gz
3.apr-util-1.3.8.tar.gz
4.sqlite-autoconf-3070900.tar.gz
二.安装
1.安装sunversion时会出现软件兼容问题
如果出现错误:configure: error: no suitable apr found时需下载安装
apr-1.3.8.tar.gz
apr-util-1.3.8.tar.gz
#tar xzvf subversion-1.7.2.tar.gz
#tar xzvf apr-1.3.8.tar.gz
#./configure --prefix=/usr/local/apr
#make
#make install
#/usr/local/apr/bin/apr-1-config --version 测试apr是否安装成功
#tar xzvf apr-util-1.3.8.tar.gz
#./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
#make
#make install
#/usr/local/apr-util/bin/apu-1-config --version 测试apr-util是否安装成功
#tar xzvf sqlite-autoconf-3070900.tar.gz
#mkdir -p ../subversion-1.7.2/sqlite-amalgamation 为subversion目录下创建sqlite-amalgamation 目录
#cp sqlite3.c ../subversion-1.7.2/sqlite-amalgamation/
编译安装sunversion
#./configure --prefix=/usr/local/svn --without-berkeley-db --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
#make
#make install
在/etc/profile最后加入 SVN Path 以方便操作:
# vi /etc/profile
PATH=$PATH:/url/local/svn/bin
export PATH
测试是否安装成功:
# svnserve –-version
svn配置建立svn版本库目录可建多个:
新建文件夹:
# mkdir -p /opt/svndata/repos
建立svn版本库:
# svnadmin create /opt/svndata/repos
修改版本库配置文件
[[email protected] conf]# vi /opt/svndata/game/conf/svnserve.conf
各参数功能在配置文件的注释中有说明, 此处配置如下:
[general]
anon-access = none # 使非授权用户无法访问
auth-access = write # 使授权用户有写权限
password-db = passwd # 指明密码文件路径
authz-db = authz # 访问控制文件
realm = /opt/svndata/game # 认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字。
其它采用默认配置. 各语句都必须顶格写, 左侧不能留空格, 否则会出错.
-------------------------------------------------------------------
#vim /opt/svndata/repos/conf/passwd
[users]是必须的,文件格式如下:
[users]
下面列出要访问svn的用户,每个用户一行,示例:
[users]
username = password
-------------------------------------------------------------------
配置svn用户访问权限:
# vi /opt/svndata/repos/conf/authz.conf
注意:
* 权限配置文件中出现的用户名必须已在用户配置文件中定义。
* 对权限配置文件的修改立即生效,不必重启svn。
用户组格式:
[groups]
其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。
版本库目录格式:
[/项目/目录]
@<用户组名> = <权限>
<用户名> = <权限>
其中,方框号内部分可以有多种写法:
[/],表示根目录及以下,根目录是svnserve启动时指定的,我们指定为/opt/svndata,[/]就是表示对全部版本库设置权限。
[/] 表示对版本库repos设置权限
[/abc] 表示对版本库repos中的abc项目设置权限
[/abc/aaa] 表示对版本库repos中的abc项目的aaa目录设置权限
权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。
权限可以是w、r、wr和空,空表示没有任何权限。
示例:
[groups]
admin = test1
[/]
@admin = rw
[/abc/aaa]
test2 = rw
[/pass]
test3 =
3. 启动svn建立启动svn的用户
# useradd svn
# passwd svn
根据提示为用户svn设置密码
允许用户svn访问版本库:
# chown -R svn:svn /opt/svndata
启动svn 服务
[[email protected] conf]# svnserve -d -r /opt/svndata/repos/
指令简介:此指令用于启动svn服务,-d指明以守护模式运行,svn自动在3690端口监听。3690是默认端口,可以使用“--listen-port=”或者“--listen-host=”来指定其它
端口。-r选项用来指定svn服务的根目录,这样用户就可以使用相对路径访问,而不用提供完整路径。
#ps -ef | grep svn
7. 检查端口
[[email protected] conf]# netstat -ntlp|grep 3690
tcp
0
0 0.0.0.0:3690
0.0.0.0:*
LISTEN
15087/svnserve
到此svn搭建配置完毕,可以在客户端进行连接使用。
----------------------------------------------------------------------------
2.目录权限问题
/data/www/wwwroot
#chown www:www /data/www/wwwroot
#chown www:www /data/www/wwwroot/.svn/
/data/svndata/repos
三.客户端访问
Windows下安装TortoiseSVN-1.7.3.22386-win32-svn-1.7.2
报错解决:
@ 找不到库文件时,可能配置下路径解决:
LD_LIBRARY_PATH变量设置上svn的lib路径
于是在~/.bashrc里面加入了
“export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/tools/”
source ~/.bashrc后解决