|
| 1 | +# Subversion(svn) 安装 |
| 2 | + |
| 3 | +<!-- TOC depthFrom:2 depthTo:3 --> |
| 4 | + |
| 5 | +- [1. 安装配置](#1-安装配置) |
| 6 | + - [1.1. 安装 svn](#11-安装-svn) |
| 7 | + - [1.2. 创建 svn 仓库](#12-创建-svn-仓库) |
| 8 | + - [1.3. 配置 svnserve.conf](#13-配置-svnserveconf) |
| 9 | + - [1.4. 配置 passwd](#14-配置-passwd) |
| 10 | + - [1.5. 配置 authz](#15-配置-authz) |
| 11 | + - [1.6. 启动关闭 svn](#16-启动关闭-svn) |
| 12 | + - [1.7. 开机自启动 svn 方法](#17-开机自启动-svn-方法) |
| 13 | + - [1.8. svn 客户端访问](#18-svn-客户端访问) |
| 14 | +- [2. 参考资料](#2-参考资料) |
| 15 | + |
| 16 | +<!-- /TOC --> |
| 17 | + |
| 18 | +## 1. 安装配置 |
| 19 | + |
| 20 | +### 1.1. 安装 svn |
| 21 | + |
| 22 | +```sh |
| 23 | +$ yum install -y subversion |
| 24 | +``` |
| 25 | + |
| 26 | +### 1.2. 创建 svn 仓库 |
| 27 | + |
| 28 | +```sh |
| 29 | +$ mkdir -p /share/svn |
| 30 | +$ svnadmin create /share/svn |
| 31 | +$ ls /share/svn |
| 32 | +conf db format hooks locks README.txt |
| 33 | +``` |
| 34 | + |
| 35 | +在 conf 目录下有三个重要的配置文件 |
| 36 | + |
| 37 | +- authz - 是权限控制文件 |
| 38 | +- passwd - 是帐号密码文件 |
| 39 | +- svnserve.conf - 是 SVN 服务配置文件 |
| 40 | + |
| 41 | +### 1.3. 配置 svnserve.conf |
| 42 | + |
| 43 | +```sh |
| 44 | +$ vim /share/svn/conf/svnserve.conf |
| 45 | +``` |
| 46 | + |
| 47 | +打开下面的 5 个注释 |
| 48 | + |
| 49 | +```ini |
| 50 | +anon-access = read #匿名用户可读 |
| 51 | +auth-access = write #授权用户可写 |
| 52 | +password-db = passwd #使用哪个文件作为账号文件 |
| 53 | +authz-db = authz #使用哪个文件作为权限文件 |
| 54 | +realm = /share/svn # 认证空间名,版本库所在目录 |
| 55 | +``` |
| 56 | + |
| 57 | +### 1.4. 配置 passwd |
| 58 | + |
| 59 | +```sh |
| 60 | +$ vim /share/svn/conf/passwd |
| 61 | +``` |
| 62 | + |
| 63 | +添加内容如下: |
| 64 | + |
| 65 | +```ini |
| 66 | +[users] |
| 67 | +user1 = 123456 |
| 68 | +user2 = 123456 |
| 69 | +user3 = 123456 |
| 70 | +``` |
| 71 | + |
| 72 | +### 1.5. 配置 authz |
| 73 | + |
| 74 | +```sh |
| 75 | +$ vim /share/svn/conf/authz |
| 76 | +``` |
| 77 | + |
| 78 | +添加内容如下: |
| 79 | + |
| 80 | +```ini |
| 81 | +[/] |
| 82 | +user1 = rw |
| 83 | +user2 = rw |
| 84 | +user3 = rw |
| 85 | +*= |
| 86 | +``` |
| 87 | + |
| 88 | +### 1.6. 启动关闭 svn |
| 89 | + |
| 90 | +```sh |
| 91 | +$ svnserve -d -r /share/svn # 启动 svn |
| 92 | +$ killall svnserve # 关闭 svn |
| 93 | +``` |
| 94 | + |
| 95 | +### 1.7. 开机自启动 svn 方法 |
| 96 | + |
| 97 | +安装好 svn 服务后,默认是没有随系统启动自动启动的,而一般我们有要求 svn 服务稳定持续的提供服务。所以,有必要配置开机自启动 svn 服务。 |
| 98 | + |
| 99 | +#### Centos7 以前 |
| 100 | + |
| 101 | +编辑 `/etc/rc.d/rc.local` 文件: |
| 102 | + |
| 103 | +```sh |
| 104 | +$ vi /etc/rc.d/rc.local |
| 105 | +``` |
| 106 | + |
| 107 | +输入以下内容: |
| 108 | + |
| 109 | +```sh |
| 110 | +# 开机自动启动 svn,默认端口是 3690 |
| 111 | +$ /usr/bin/svnserve -d -r /share/svn --listen-port 3690 |
| 112 | +``` |
| 113 | + |
| 114 | +注意: |
| 115 | + |
| 116 | +我们在用终端操作的时候,可以直接使用以下命令启动 SVN:`svnserve -d -r /share/svn`,但是在 `/etc/rc.d/rc.local` 文件中必须写上完整的路径! |
| 117 | + |
| 118 | +如果不知道 svnserve 命令安装在哪儿,可以使用 whereis svnserve 查找。 |
| 119 | + |
| 120 | +#### Centos7 |
| 121 | + |
| 122 | +CentOS 7 中的 `/etc/rc.d/rc.local` 是没有执行权限的,系统建议创建 `systemd service` 启动服务。 |
| 123 | + |
| 124 | +找到 svn 的 service 配置文件 `/etc/sysconfig/svnserve` 编辑配置文件 |
| 125 | + |
| 126 | +```sh |
| 127 | +$ vi /etc/sysconfig/svnserve |
| 128 | +``` |
| 129 | + |
| 130 | +将 `OPTIONS="-r /var/svn"` 改为 svn 版本库存放的目录,:wq 保存退出。 |
| 131 | + |
| 132 | +执行 `systemctl enable svnserve.service` |
| 133 | + |
| 134 | +重启服务器后,执行 `ps -ef | grep svn` 应该可以看到 svn 服务的进程已经启动。 |
| 135 | + |
| 136 | +### 1.8. svn 客户端访问 |
| 137 | + |
| 138 | +进入 [svn 官方下载地址](https://tortoisesvn.net/downloads.html),选择合适的版本,下载并安装。 |
| 139 | + |
| 140 | +新建一个目录,然后打开鼠标右键菜单,选择 **SVN Checkout**。如下图所示: |
| 141 | + |
| 142 | + |
| 143 | + |
| 144 | +在新的窗口,输入地址 `svn://<你的 IP>` 即可,不出意外输入用户名和密码就能连接成功了(这里的用户、密码必须在 passwd 配置文件的清单中)。默认端口 3690,如果你修改了端口,那么要记得加上端口号。如下图所示: |
| 145 | + |
| 146 | + |
| 147 | + |
| 148 | +## 2. 参考资料 |
| 149 | + |
| 150 | +- https://www.cnblogs.com/liuxianan/p/linux_install_svn_server.html |
| 151 | +- https://blog.csdn.net/testcs_dn/article/details/45395645 |
| 152 | +- https://www.cnblogs.com/moxiaoan/p/5683743.html |
| 153 | +- https://blog.csdn.net/realghost/article/details/52396648 |
0 commit comments