本次系统环境:centos7.6,minimal
首先关闭防火墙,NetworkManager,selinux;
其次,配置好本地yum源;
先查看系统中是否存在subversion软件?
rpm -qa|grep subversion
备注:
默认ISO里已经有subversion软件包了,且,最小化版本中已经装好了subversion软件包了;
如果已存在,可忽略此步骤;若不存在,则利用yum安装此软件:
yum -y install subversion
查看svn的安装目录
rpm -ql subversion
# 查看svn版本:
/usr/bin/svnversion --version
选择在var路径下创建版本库:
mkdir /var/svnrepos
在第二步建立的路径基础上,创建版本库,命令如下:
svnadmin create /var/svnrepos/test-svn
(test-svn为你预期的版本库名称,可自定义)
创建成功后,进入test-svn目录下
cd /var/svnrepos/test-svn
进入目录,可以看见如下文件信息:
# 备注:
进入已经创建好的版本库目录下,也就是前文说创建的test-svn,进入conf
cd /var/svnrepos/test-svn/conf
conf目录下,一共存放三份重要的配置文件,如下:
authz:负责账号权限的管理,控制账号是否读写权限
passwd:负责账号和密码的用户名单管理
svnserve.conf:svn服务器配置文件
1.编辑 passwd 文件
如上所示:
用户名为:hg,认证密码为:xxx
用户名为:zxl,认证密码为:xxx
2.编辑 authz 文件(注意:[/]也是必须的)
注意:在最后一行添加即可。
[/] 表示根目录,即 /var/svnrepos
hg = rw 表示用户hg对根目录具有读写权限。
zxl = rw 表示用户zxl对根目录具有读写权限。
3.编辑 svnserve.conf 文件(注意:配置的前面不能有空格,一定要顶格写)
anon-access = none:表示禁止匿名用户访问。
auth-access = write:表示授权用户拥有读写权限。
password-db = passswd:指定用户名口令文件,即 passwd 文件。
authz-db = authz:指定权限配置文件,即 authz 文件。
realm = /var/svnrepos:指定认证域,即 /var/svnrepos 目录。
# 注意:如果防火墙关闭的话,此步骤可跳过;
# 多数情况下服务器安装完成,配置完成后,无法连接svn服务器,均是防火墙问题【注意:如果是阿里云,腾讯云的服务器,还需在安全组添加端口开启规则】
# 7版本防火墙:
查看防火墙状态
firewall-cmd --state
开启防火墙
systemctl start firewalld.service
开启端口
firewall-cmd --zone=public --add-port=3690/tcp --permanent
重启防火墙
systemctl restart firewalld.service
查看已开放的端口
firewall-cmd --list-port
# 6版本防火墙:
vi /etc/sysconfig/iptables
添加配置信息
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3690 -j ACCEPT
保存退出
systemctl restart iptables.service #重启防火墙使配置生效
svnserve -d -r /var/svnrepos
参数:
-d:表示后台运行守护模式;
-r:表示svn服务的根目录;
# 注意。这里目录指的时版本库存放目录位置;
检测svn端口3690是否已经监听:
netstat -antlp|grep svnserve
netstat -antlp|grep 3690
ps -ef | grep 'svnserve'
# 关闭SVN 方法:
这里采取linux杀死进程的方式处理的
ps -ef|grep svnserve
root 4967 1 0 Aug23 ? 00:00:00 svnserve -d -r repository/
这里 kill -9 4967杀死进程, 此4967为进程号
(1)Windows下常用的客户端软件常用TortoiseSVN。它是一个免费的开源的客户端。
在windows客户端,输入地址:svn://ip地址:3690/xxxx (iP地址为你linux的ip,xxxx为前文创建的版本库名称,3690为svn默认端口)
弹出输入用户名和密码,输入即可访问
# svn://10.10.10.130:3690/test-svn 搭建成功。
这里测试增加、修改、删除文件均没问题,一切正常。
(2)在linux服务器输入命令测试:
svn co svn://ip地址:3690/xxxx
如下为例子:
# svn co svn://10.10.10.130:3690/test-svn
下载的SVN目录在家目录下:
第一种配置:版本库目录与其根目录不是同一个。(目前推荐这种方法)
# 创建版本库目录(此仅为目录,为后面创建版本库提供存放位置)
mkdir /var/svnrepos
# 创建svn版本库
svnadmin create /var/svnrepos/test-svn (test-svn为你预期的版本库名称,可自定义)
# 编辑 authz 文件(注意:[/]也是必须的)
注意:在最后一行添加即可。
[/] 表示根目录,即 /var/svnrepos
hg = rw 表示用户hg对根目录具有读写权限。
zxl = rw 表示用户zxl对根目录具有读写权限。
# 启动svn服务器:
svnserve -d -r /var/svnrepos
参数:
-d:表示后台运行守护模式;
-r:表示svn服务的根目录;
# 注意。这里目录指的时版本库存放目录位置;
# 注意:如果有第二个版本库的,该如何启动呢??;
只能再为第二个版本库新创建个路径了,再创建对应的版本库;
(1)默认配置:
1.配置passwd文件:# passwd文件内容不变
2.编辑 authz 文件(注意:[/]也是必须的)
注意:在最后一行添加即可。
[/] 表示根目录,即 /var/svnrepos
hg = rw 表示用户hg对根目录具有读写权限。
zxl = rw 表示用户zxl对根目录具有读写权限。
3.编辑 svnserve.conf 文件(注意:配置的前面不能有空格,一定要顶格写)
anon-access = none:表示禁止匿名用户访问。
auth-access = write:表示授权用户拥有读写权限。
password-db = passswd:指定用户名口令文件,即 passwd 文件。
authz-db = authz:指定权限配置文件,即 authz 文件。
realm = /var/svnrepos:指定认证域,即 /var/svnrepos 目录。
(2)组配置:(推荐这个方法)
# 参考1:
注意:
这里的/目录及[/Files]格式,描述的都是目录信息:
# 一般实际配置如下:
[groups] admin = hg, zxl
[/] @admin = rw @developer = rw * =
# [/ProjectA] # @admin = rw # @developer = rw # * =
# [/ProjectA/ProjectA_info] # @admin = rw # @developer = rw # * = |
注意,这边配置了3693端口口,客户顿无法访问原来的版本库:
本人建议指定端口的启动方式,如果建立多个仓库,也便于管理。
svn默认端口为3690,需要在防火墙添加才可在svn客户端访问
在此,我选择用3693端口启动
启动命令:svnserve -d -r /var/svnrepos/ --listen-port 3693
这是因为修改svnserve.conf时,打开注释时,配置的前面有空格,应该顶格写。修改后即可!
解决方法:
ctrl+f搜索ShellIconOverlayIdentifiers(这里需要一会时间,耐心等待就是的)
重启电脑后图标依然可见:
# 注意:
自己电脑这里默认就有空格的:因此,重新启动下资源管理器就ok了,不需要重新启动电脑。
结束!