1. 安装subversion
yum install -y subversion
若需查看svn安装位置,可以用以下命令
rpm -ql subversion
2. 创建版本库目录
mkdir /var/svnrepos
3. 创建svn版本库
svnadmin create /var/svnrepos/xxxx
xxxx为你预期的版本库名称,可自定义
创建成功后,进入xxxx目录下
cd /var/svnrepos/xxxx
进入目录,可以看见如下文件信息:
总用量 8
drwxr-xr-x. 2 root root 54 3月 12 20:18 conf
drwxr-sr-x. 6 root root 233 3月 12 20:18 db
-r--r--r--. 1 root root 2 3月 12 20:18 format
drwxr-xr-x. 2 root root 231 3月 12 20:18 hooks
drwxr-xr-x. 2 root root 41 3月 12 20:18 locks
-rw-r--r--. 1 root root 229 3月 12 20:18 README.txt
下面是这些目录的详细讲解
路径 | 类型 | 作用 |
---|---|---|
conf | 目录 | 存放版本库所用配置文件的目录 |
db | 目录 | 版本库数据存储目录 |
db/fs-type | 文件 | 版本库数据真实存储格式,SVN 有fsfs 和bdb 两种存储格式 |
db/revprops | 目录 | 记录版本属性 |
db/revs | 目录 | 版本库数据存储真实目录 |
db/uuid | 文件 | 存储版本库唯一标识号 |
db/txn-current | 文件 | 记录当前事务 |
format | 文件 | 存储一个整数的文件,此整数代表库层次结构版本 |
hooks | 目录 | 存放版本库钩子目录 |
locks | 目录 | 存储库锁目录,用来跟踪库的访问者 |
4. 配置修改
进入已经创建好的版本库目录下,也就是前文说创建的xxxx,进入conf
cd /var/svnrepos/xxxx/conf
conf目录下,一共存放三份重要的配置文件,如下:
总用量 12
-rw-r--r--. 1 root root 1080 3月 12 20:18 authz
-rw-r--r--. 1 root root 309 3月 12 20:18 passwd
-rw-r--r--. 1 root root 3090 3月 12 20:18 svnserve.conf
**authz:**负责账号权限的管理,控制账号是否读写权限
**passwd:**负责账号和密码的用户名单管理
**svnserve.conf:**svn服务器配置文件
4.1 编辑 authz 文件(注意:[/]也是必须的)
[/] 表示根目录,即 /var/svnrepos
luo = rw 表示用户luo对根目录具有读写权限
4.2 编辑 passwd 文件
如上所示,用户名为:luo,认证密码为:luo123456
4.3 编辑 svnserve.conf 文件(注意:配置的前面不能有空格,一定要顶格写)
anon-access = none:表示禁止匿名用户访问。
auth-access = write:表示授权用户拥有读写权限。
password-db = passswd:指定用户名口令文件,即 passwd 文件。
authz-db = authz:指定权限配置文件,即 authz 文件。
realm = /var/svnrepos:指定认证域,即 /var/svnrepos 目录。
5. 开放3690端口
firewall-cmd --zone=public --add-port=3690/tcp --permanent
firewall-cmd --reload
6. 启动svn服务器
svnserve -d -r /var/svnrepos
7. 客户端访问svn服务器
svn://ip地址:3690/xxxx (ip地址为你linux的ip,xxxx为前文创建的版本库名称,3690为svn默认端口)
弹出输入用户名和密码,输入即可访问
问题小结
输入账号密码后,提示 svn: Authorization failed解决办法
把authz 文件 [/] 改为 [\] 试试
评论区