Linux 搭建 SVN 服务器

蓝咒 提交于 2019-12-08 12:42:39

安装 SVN

# yum install subversion

创建仓库

我们这里在 /usr/local/svnrep 下建立一个仓库 (repository) , 名字也是 svnrep :

# cd /usr/local/
# mkdir svnrep
# svnadmin create /usr/local/svnrep

创建成功后在 /usr/local/svnrep 会有相关文件夹 :

drwxr-xr-x 2 root root 4096 Mar 30 20:05 conf
drwxr-sr-x 6 root root 4096 Mar 30 20:05 db
-r--r--r-- 1 root root    2 Mar 30 20:05 format
drwxr-xr-x 2 root root 4096 Mar 30 20:05 hooks
drwxr-xr-x 2 root root 4096 Mar 30 20:05 locks
-rw-r--r-- 1 root root  229 Mar 30 20:05 README.txt

配置文件讲解

上面的文件中 , 文件夹 conf 是用来存放配置文件的 :

authz    是权限控制文件
passwd    是帐号密码文件
svnserve.conf    是SVN服务配置文件

配置 passwd

[users]
# harry = harryssecret
# sally = sallyssecret

tojohn = 123456
guest = 123456

创建了 tojohnguest 的用户 , 密码都是 123456 ;

配置 authz

[/]
tojohn = rw
guest = r
* =

上面配置的含义是 对于仓库 (/usr/local/svnrep) 下所有文件 , 用户 tojohn读写 权限 , guest 用户只有 权限 , 其它用户 无任何权限 (由最后一行 * = 表示) ;

如果要进行分组 , 配置如下 :
[groups]
group1 = tojohn
group2 = guest
[/]
@group1 = rw
@group2 = r
* =

上面配置中创建了 2 个分组 , 分组 1 的用户可读可写 , 分组2的用户只读 , 组内的用户有多个的话用逗号隔开 ;

配置 svnserve.conf

打开下面的5个注释 :

anon-access = read    # 匿名用户可读
auth-access = write    # 授权用户可写
password-db = passwd    # 使用哪个文件作为账号文件
authz-db = authz    # 使用哪个文件作为权限文件
realm = Ensk's SvnRep    # 版本库认证域 , 使用 SVN 客户端访问时 , 会出现在提示信息中 , 最好自定义下域的标志以方便辨别库

打开注释时前面不要留有空格 , 否则访问库会报错

启动服务

# svnserve -d -r /usr/local/svnrep

客户端连接

使用 TortoiseSVN , 输入地址 svn://192.168.22.159:3690/ 即可 , 再输入用户名和密码就能访问了

默认端口 3690 , 如果你修改了端口 , 那么要记得加上修改后的端口号 ;

修改端口号

服务器默认使用 3690 端口号 , 要使用非默认端口 , 可以在启动命令后面加一个 --listen-port xxxx :

# svnserve -d -r /usr/local/svnrep --listen-port 3691

则端口号变为 3691 , 同时还可以为同一个服务器上不同的 SVN 项目设定不同的端口号 , 比如还建有另一个项目那么可以启动 :

# svnserve -d -r /usr/local/svnrep1 --listen-port 3692

则 svnrep1 项目监听 3692 端口号 , 这样在使用 netstat -ntlp 进程查看时会查看到另个 svnserver , 客户端可以指定端口来访问不同的项目 ;

作者 Github : tojohnonly , 博客 : EnskDeCode

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!