本测试用的系统为centos7,应为centos7版本防火墙默认使用的firewall,而不是iptables,所以会有些不一样
一.安装svnserve(这里用yum源安装)
yum -y install subversion
#此命令会全自动安装svn服务器相关服务和依赖,安装完成会自动停止命令运行
查看svn安装位置命令:rpm -ql subversion
二.创建版本库目录(此仅为目录,为后面创建版本库提供存放位置)
创建目录为:/var/svn/svnrepos,这里svn和svnrepos都是新目录,需要加-p,命令如下:
mkdir -p /var/svn/svnrepos
三.创建svn版本库
在第二步建立的路径基础上,创建版本库,命令如下:
svnadmin create /var/svn/svnrepos/xxx (xxx为你预期的版本库名称,可自定义)
创建成功后,进入xxx目录下
cd /var/svn/svnrepos/xxx
有如下文件:
conf db format hooks locks README.txt
subversion目录说明
db目录:就是所有版本控制的数据存放文件。
hooks目录:放置hook脚本文件的目录。
locks目录:用来放置subversion见艰苦锁定数据的目录,用来追踪存取文件库的客户端。
format文件:是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号。
conf目录:是这个仓库的配置文件(仓库的用户访问账号、权限等)
四.添加账号密码和修改配置
进入conf目录(该svn版本库配置文件)cd conf/
authz文件是权限控制文件
passwd是帐号密码文件
svnserve.conf SVN服务配置文件
注意如下细节修改:
1.添加账号和密码,如下红色框为添加内容,zh为账号,123456为密码
2.给账号添加读写权限,红色框为添加内容,注意有[\],zh为刚才添加的账号,r代表读,w代表写,这里是读和写的权限
3.这里是修改svn配置文件svnserve.conf,这里我修改了4个地方,注意:去掉注释的行前面不要有空格,不然会报错
anon-access = read #匿名用户可读
auth-access = write #授权用户可写
password-db = passwd #使用哪个文件作为账号文件
authz-db = authz #使用哪个文件作为权限文件,这我没打开也不影响使用,后续用的时候在打开
realm = /var/svn/svnrepos # 认证空间名,版本库所在目录
五.centos版本系统会需要手动允许防火墙端口(其它系统没测试),然后我使用时centos7,默认使用的是firewall,所以这里操作的也是firewall
firewall-cmd --state #显示状态
打开svn端口3690,命令如下
firewall-cmd --zone=public --add-port=80/tcp --permanent(--permanent永久生效,没有此参数重启后失效)
重新载入: firewall-cmd --reload
firewall-cmd --zone=public --list-ports #查看所有打开的端口
具体防火墙操作请看莫小安博客
六.启动svn服务器
启动命令为:svnserve -d -r /var/svn/svnrepos #-d:守护进程 -r:svn根目录
可查看svn端口是否打开命令如下
ps -ef | grep svn 或者 netstat -tnlp | grep 3690 或 lsof -i:3690
七.客户端连接
可以先在windows 中的dos窗口使用命令:telnet 你的ip 3690,如果出现如下则可连接
再用svn客户端(小乌龟)测试连接,svn://ip地址/xxx
参考:岛主博客