很早之前就做过这个东西 但是长时间没有操作还是生疏的很,特来记录一番。
一 安装SVN
- 云安装命令 安装SVN相关服务
yum -y install subversion
- 检查SVN是否安装成功
svnserve --version
二 建立SVN版本库
一般把版本库根目录 安装在了 var/svn/svnrepos/目录下
- 创建一个文件夹
mkdir /var/svn/svnrepos
- 创建SVN版本库
svnadmin create /var/svn/svnrepos/xxxx (xxxx)为目录(项目或版本库)名称,后面checkout项目时会用到。
- 进入版本库目录中
cd /var/svn/svnrepos/xxxx 进入该目录查看目录下
ls 检查创建的文件。
- conf,db,format,books,locks等文件或文件夹
简单介绍一下目录:
conf:SVN版本库配置文件(帐号密码权限等)
conf/authz:负责账号权限的管理,控制账号是否读写权限
conf/passwd:负责账号和密码的用户名单管理
conf/svnserve.conf:svn服务器配置文件
db:版本库数据存储
locks:跟踪目录的访问者
四:修改配置文件
- 进入conf目录
cd /var/svn/svnrepos/xxxx/conf
- 修改authz文件
vi authz
- 按一下 i 键 进入VIM编辑模式
在本文末尾增加如下代码:
[\]
用户名1 = rw
用户名2 = r
* = r
PS:1:[\] 表示 最大权限 [/文件夹] 表示针对这个文件夹的权限
2:用户名(组)可以随意定义
3:rw 和 r分别代表 可读可写 和 只读
4:* 表示 任何用户
5:关于权限这边不做过多说明。
- 保存并退出 esc > :wq
- 修改passwd 文件配置 在末尾添加 账号密码(VIM模式如何处理 编写 保存退出 请看 步骤3 步骤4)
vi passwd
#在文件中新增
自定义的账号 = 密码
- 修改svn配置文件 vi svnserve.conf
取值范围介绍:write 可读可写 read 只读 none 无权访问
anon-access:表示非授权(游客)用户访问范围 默认值:read;
auth-access: 表示授权用户访问范围 默认值:write;
password-db:passwd文件相对路径 他默认会指向你的 ../conf/passwd 不需要设置
realm:指定版本库认证域 可以随意设置一个UUID 比如:my test
去掉这几行行注释。
- 保存并退出。
五:开启防火墙
多数情况下,配置完SVN后 无法访问通常是防火墙为配置 3690 端口(SVN默认端口)
首先查看防火墙是否开启
centOS 7 防火墙开启 关闭 与 查看状态
systemctl start firewalld
systemctl stop firewalld
#根据下面这行代码查看防火墙 时候开启 没有开启的话可以直接跳到第六步
systemctl status firewalld
没有开启的话可以直接跳到第六步,开启则需要对3690端口进行开放,进行一下操作
sbin/iptables -I INPUT -p tcp --dport 3690 -j ACCEPT
/etc/init.d/iptables save
service iptables restart
或者(系统未安装INPUT命令 或者 centOS7 firewall 已经代替 iptables)
sudo firewall-cmd --permanent --add-service=telnet
sudo firewall-cmd --permanent --add-port=3690/tcp
sudo firewall-cmd --reload
六:启动svn服务
1.开启服务器
svnserve -d -r /var/svn/svnrepos (/var/svn/svnrepos 为当初svn版本库根目录)
2:启动成功后 可以查看svn进程
ps aux | grep svn
3:(如目录正常则跳过此步骤 若该目录 并非当初创建时目录 则需要停止服务并修改重启) kill 这个进程 并执行步骤1
七:测试
1:进入windows 检出项目 地址栏输入 svn://项目ip:3690/xxxx
项目ip可以通过 ip addr 或者 ifconfig 查看 inet
xxxx 为当初建立的SVN版本库 可以从上文 xxxx寻找
如果可以正常的打开并可以进行显示那就可以了