Svn配置全过程

从网上下载源码包

#wget http://subversion.tigris.org/downloads/subversion-1.6.11.tar.gz

#wget http://subversion.tigris.org/downloads/subversion-deps-1.6.11.tar.gz

也可以从http://archive.apache.org/dist/subversion/

获取最新版本

将包解压

tar zxvf subversion-1.6.11.tar.gz

tar zxvf subversion-deps-1.6.11.tar.g

 

进入安装目录

cd subversion-1.6.11

(先要安装zlib,不然会在编译的时候报错)

cd zlib

./configure –prefix=/usr/local/zlib

Make

Make install

Cd ..

./configure --prefix=/usr/local/svn --with-zlib=/usr/local/zlib --without-berkeley-db

(--with-zlib要带上路径,不然也会报错,有的地方还会带上其他参数,个人觉得没有必要,具体可以去百度下)

Make clean

Make

Make install

在/etc/profile这个文件里开头加上PATH=$PATH:/usr/local/svn/bin

(有的参考资料还会加上export PATH source /etc/profile,这里我也试过,不过会出问题,导致无法再登录。source /etc/profile是重载配置文件,又跳到开头,导致死循环)

 

Svn 服务器配置

建立svn版本库目录

Mkdir –p /usr/local/svndata/repos

建立svn版本库

Avnadmin create /usr/local/svndata/repos

 

修改svn版本库的配置文件

Vi /usr/local/svndata/repos/conf/svnserve.conf

里面的内容为

[general]

anon-access = none

auth-access = write

password-db = /usr/local/svn/conf/pwd.conf

authz-db = /usr/local/svn/conf/authz.conf

realm = repos

(anon-access 指匿名访问的权限,可以是 read,write,none,默认为 read,这个建议配为 none

auth-access 指认证用户的权限,可以是 read,write,none,默认为 write

password-db 指密码数据库的路径,去掉前面的,存的是认证用户的用户名和密码,

username=passwd

authz-db 实现了以路径为基础的授权,也就是判断用户是否有操作对应路径的权限)

 

配置允许访问svn用户

Mkdir –p /usr/local/svn/conf

Vi /usr/local/svn/conf/pwd.conf

文件格式如下:

[users]

<用户 1> = <密码 1>

<用户 2> = <密码 2>

其中,[users]是必须的。下面列出要访问 svn 的用户,每个用户一行。示例:

[users]

smallbo = 123456

 

配置svn用户访问权限

Vi /usr/local/svn/conf/authz.conf

用户组格式:

[groups]

<用户组名> = <用户 1>,<用户 2>

其中,1 个用户组可以包含 1 个或多个用户,用户间以逗号分隔。

版本库目录格式:

[<版本库>:/项目/目录]

@<用户组名> = <权限>

<用户名> = <权限>

例如

 [groups]

admin = smallbo

[/]

@admin = rw

(权限没有x,如果有的话,最后在导入的时候会出现一个错误Invalid authz configuration)

(也可以根据自己的需要多创建几个用户,这里只创建一个)

 

启动svn

建立启动svn的用户

Useradd svn

Passwd svn

(根据提示设置密码)

允许用户svn访问版本库

Chown –R svn:svn /usr/local/svndata

Chown –R svn:svn /usr/local/data

 

启动svn

svnserve -d -r /opt/svndata --listen-host 121.10.141.135

 

最后就可以从客户端登陆了

svn://121.10.141.135/repos1

然后输入账号密码就可以登录了