说明:本文整合了网上多篇博客介绍,本人亲测可用。
一、安装
1. 检查是否安装了低版本的SVN
# rpm -qa subversion
2. 卸载旧版本SVN
# yum removesubversion
3. 安装SVN
# yum install subversion
4. 验证已经安装的SVN版本信息
# svnserve --version
二、配置SVN仓库
1. 创建代码库repositories
# mkdir -p /project/repos
# svnadmin create /project/repos
第一条命令创建代码库位置文件夹,第二条命令在该文件夹下创建代码库。可以查看/project/repos/文件夹,发现包含conf,db,format,hooks,locks,README.txt等文件,说明一个SVN库已经建立成功。
其中conf就是我们要修改该SVN库配置的位置了,其他文件一般不要去修改。
2. 配置代码库
进入conf文件夹下进行配置。
# cd /project/repos/conf
查看conf文件夹下文件
# ls /project/repos/conf
可以发现有3个文件,authz,passwd,svnserve.conf
3. 配置用户密码
passwd文件用来配置用户账号密码,使用vi进行编辑:
# vi passwd
修改passwd内容为以下形式
[users]
username = password
eapink = 123456
chen = 111111
形式如上所示为:用户名=密码,当然可以配置多个用户。
4. 配置用户权限控制
authz文件用了配置用户的控制权限,也就是哪些用户可以访问哪些目录,有无读写权限。使用vi进行编辑:
# vi authz
修改authz内容为以下形式
[groups]
team = eapink , chen
[repos:/]
* =
username = rw
[repos:/project1]
* =
@team = rw
[repos:/project2]
* =
eapink = r
[groups]:设置了用户组,可以有多个组;
[repos:/]:设置了访问repos路径下所有内容的用户权限,*= 表示所有未授权用户无读写权限,username=rw表示username用户拥有读写权限。
[repos:/project1]:设置了访问repos/project1路径下内容的用户权限,@team=rw表示用户组team拥有读取权限,可以看到,用户组与用户的区别在于用户组名前面多一个@字符。
[repos:/project2]:设置了eapink用户对于repos/project2路径下内容只有读权限。
5. 服务器配置
svnserve.conf配置了当前SVN库的配置,使用vi进行编辑:
# vi svnserve.conf
修改以下内容,去掉每一行前的#号,注意每一行都要顶格,不要留空格,不然会报错。
[general]
anon-access = none # 使非授权用户无法访问
auth-access = write # 使授权用户有写权限
password-db = passwd # 访问用户密码文件
authz-db = authz # 访问权限控制文件
realm = /project/repos # 认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字。
以上内容每一行后面的中文注释要去掉,不然配置无效。
三、启动与停止服务
1. 启动SVN
# svnserve -d -r /project/
2. 查看SVN进程
# ps -ef|grep svn|grep -v grep
3. 检查端口
# netstat -ntlp|grep 3690
4. 停止SVN
# killall svnserve
四、资源库位置
1. 访问位置URL:svn://127.0.0.1/repos
127.0.0.1 改成相应IP
2. 访问repos子文件夹可以使用URL:svn://127.0.0.1/repos/project1