Linux 搭建 SVN 服务器 及利用教程
- 查抄情况
- 查察体系下有没有安装过或有安装过老版本的SVN
- rpm -qa subversion //如果没安装过则什么都不显示
复制代码 - 假如有老版本先运行一下,删除老版本
- 搭建SVN服务器
- yum -y install subversion
复制代码
- svn, version 1.10.2 (r1835932)
- compiled Nov 3 2020, 23:13:15 on x86_64-redhat-linux-gnu
复制代码
- 创建SVN堆栈
- #(此目录为后面创建版本库提供存放位置,repository默认是把/var/svn作为数据根目录的,开机启动默认也是从这里):
- mkdir -p /home/svn/repository
复制代码
- chmod 755 -R /home/svn/repository
复制代码
- #repository为项目名称,checkout项目时会用到
- svnadmin create /home/svn/repository
复制代码 创建完成之后进入刚才的目次就能看到下面几个文件:
- conf db format hooks locks README.txt
复制代码
- conf:是这个堆栈配置文件(堆栈用户访问账户,权限)
- format:是一个文本文件,里边只放了一个整数,表现当前文件库配置的版本号
- hooks:放置hook脚步文件的目次
- locks:用来放置subversion的db锁文件和db_logs锁文件的目次,用来追踪存取文件库的客户端
- db:利用命令创建SVN堆栈之后上传的文件并不能直接看到,由于文件被svn管理起来了储存在db目次。
conf目次下存放三份紧张的配置文件,如下:
- authz:负责账号权限的管理,控制账号是否读写权限
- passwd:负责账号和暗码的用户名单管理
- svnserve.conf:svn服务器配置文件
- 修改SVN堆栈的配置文件
- 修改passwd文件信息,用户添加暗码
直接将账号和暗码信息追加到文件中即可,格式为:账号 = 暗码,用户权限假如是设的分组,仍需设置每个角色对应的暗码
- 修改authz文件:设置用户权限
在文件内容的末尾,添加如下:
- # 表示根目录下用户panyma拥有读和写的权限
- 第一种方式:单个添加:
- [/]
- panyma=rw
- 第二种方式:用户分组,再设权限
- [groups]
- # 按用户组分权限
- admin = admin,admin1 # admin为用户组,等号之后的为用户
- [/] # 表示svn仓库根目录(/home/svn/repository)
- @admin = rw # 表示admin组对仓库目录有读写权限
复制代码- 备注:版本库的目录格式如下:
- [<版本库>:/项目/目录]
- @<用户组名> = 权限
- <用户名> = 权限
- 1.权限的主体可以是用户组,用户或者*,用户组在前面要以@开头,*表示全部用户
- 2.权限分为:r ,w, rw和null ,null空表示没有任何权限。
- 3.auhtz配置文件中的每个参数,开头不能有空格,对于组要以@开头,用户不需要。
- 注意[/]中的斜杠,这里如果斜杠反了,authz-db = authz 一直会提示“认证失败”
- 其中[]內容有許多写法:
- [/],表示根目录及其一下的路径,根目录是svnserver启动时指定好的,上述实例中我们指定为:/svn/svndata([/]=/svn/svndata).[/]就是表示对全部版本设置的权限
- [test:/],表示对版本库test设置权限;
- [test:/svnadmin],表示对版本库test中的svnadmin项目设置权限;
- [test:/svnadmin/second],表示对版本库test中的svnadmin项目的目录设置权限;
复制代码 - 修改svnserve.conf文件
原始文件内容都被解释掉的,我们只必要去掉指定内容前解释即可,如下:
- # 鉴权:是指验证用户是否拥有访问系统的权利。
- # 取值范围"write"为可读可写,"read"为只读,"none"表示无访问权限。
- #控制非鉴权用户访问版本库的权限
- #anon-access = none
- # 控制鉴权用户访问版本库的权限。
- auth-access = write
- # 指定用户名口令文件名,即访问时要输用户名和密码,如果在同一目录下,就等于文件名即可
- password-db = passwd
- # authz 文件的位置,如果在同一目录下,就等于文件名即可
- authz-db = authz
- realm = /home/svn/repository 【指定版本库的认证域,即在登录时提示的认证域名称,改成自己的版本库】
复制代码
- 开启防火墙
多数情况下服务器安装完成,配置完成后,无法毗连svn服务器,均是防火墙问题
首先要明确CentOS7的默认防火墙为firewallD。subversion的默认端口为3690,假如没有打开会报错:
- sudo firewall-cmd --permanent --add-service=telnet
- sudo firewall-cmd --permanent --add-port=3690/tcp
- sudo firewall-cmd --reload
复制代码 centOS 7 防火墙开启、关闭与查察状态:
- systemctl start firewalld
- systemctl stop firewalld
- systemctl status firewalld
复制代码 - 启动svn服务器
- # -d : 守护进程 -r : svn数据根目录
- svnserve -d -r /home/svn/repository #用root权限启动
复制代码 查察SVN服务
- ps aux|grep svnserve #默认端口为:3690
复制代码 开始svn服务
- start svnserve.service #开始服务
- stop svnserve.service #停止服务
复制代码 - 检出项目
进入windows 检出项目:
地点栏输入 svn://项目ip:3690/repository
项目ip可以通过 ip addr 或者 ifconfig 查察 inet,repository为当初建立的SVN版本库
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |