Linux Centos搭建SVN服务器笔记

0x00 前言

文章中的文字可能存在语法错误以及标点错误,请谅解;

如果在文章中发现代码错误或其它问题请告知,感谢!

该演示运行的Linux发行版本 (#cat /etc/issue):CentOS release 6.8 (Final)

该演示运行的Linux内核信息 (#cat /proc/version ):Linux version 2.6.32-642.15.1.el6.x86_64 (mockbuild@c1bm.rdu2.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC) ) #1 SMP Fri Feb 24 14:31:22 UTC 2017

0x01 SVN服务器搭建过程

如果将Centos服务器接入到某局域网后需要改IP等信息,可以参见此链接:https://blog.csdn.net/qq_41875147/article/details/81144327

1 安装:
#yum install subversion

2 查看服务器SVN版本(判断是否安装成功):
#svnserve --version

3 建立SVN库:
#mkdir /opt/svn
#mkdir /opt/svn/repos
#svnadmin create /opt/svn/repos
执行上面的命令后,自动在repos下建立多个文件, 分别是conf, db,format,hooks, locks, README.txt。
hooks目录:放置hook脚本文件的目录
locks目录:用来放置subversion的db锁文件和db_logs锁文件的目录,用来追踪存取文件库的客户端
format目录:是一个文本文件,里边只放了一个整数,表示当前文件库配置的版本号
conf目录:是这个仓库配置文件(仓库用户访问账户,权限)

4 配置文件设置
1)设置passwd

[users]
# harry = harryssecret
# sally = sallyssecret
test = 123456

这样我们就建立了test用户, 123456密码

当然也可以设置多个账号及密码:

[users]
# harry = harryssecret
# sally = sallyssecret
admin = 134234
test1 = 123456
test2 = 654321

2)设置权限authz(配置新用户的授权文件)

[repos:/]    
test = rw

意思是test用户对/svn/repos/目录下所有文件有读写权限,当然也可以限定,例如[repos:/datafile] ,只能访问该目录下datafile目录。

另外,设置用户组和用户方式如下:

[groups]
admin = wangqingchuan,jiangzheng,wangrui 
member = yanyan,renyuqi,cuikeqiang,liuchen,songxianming

[repos:/]				#只能访问该目录
@admin = rw				#该组用户有读写
@member = r				#该组用户只有只读
*=            			#表示除了上面设置的权限用户组以外,其他所有用户都设置空权限,空权限表示禁止访问本目录。

3) 最后设定svnserv.conf

[genernal]
anon-access = none 		# 使非授权用户无法访问
auth-access = write 	# 使授权用户有写权限
password-db =  passwd
authz-db = authz   		# 访问控制文件
realm = /opt/svn/repos 	# 认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字。

注意以上所有语句都必须顶格写, 左侧不能留空格, 否则会出错。

5 启动SVN:
#svnserve -d -r /opt/svn/repos#svnserve -d -r /opt/svn

注意:当更改svnserver.conf时需要重启SVN服务,更改authz,passwd文件时则不需要重启服务。
另外,SVN默认端口为:3690,如果已经有svn在运行,可以换一个端口运行,例如:
#svnserve -d -r /opt/svn/repos --listen-port 3391

6 配置防火墙端口
首先要明确CentOS7的默认防火墙为firewallD。若SVN的默认端口为3690没有打开则会报错:
#firewall-cmd --permanent -add-port=3690/tcp
#sudo firewall-cmd --reload

或者当然直接把防火墙关闭,不过会有安全性风险:
#service iptables stop

0x02 SVN客户端连接

Windows下客户端(插件)安装可参考这篇文章,注意若在本地进行SVN更新的话,会自动覆盖掉原来的文件,所以可以先备份文件,再选择SVN更新:https://www.cnblogs.com/ygj0930/p/6623148.html

Linux下客户端连接可以参考这篇文章的后半部分:https://www.cnblogs.com/weifeng1463/p/7593729.html

0x03 本地连接到SVN服务器可能遇到的问题小结

“由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败”

我们在本地checkout项目后,会出现“由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败”错误,解决方法可以参照以下部分:

1 查看是否开启了防火墙
解决方法:
1)关闭防火墙;
2)或开放3690端口。
参见0x01小节第6步骤。

2.查看是否是SVN服务器配置问题
解决方法:
检查authz、passwd、svnserve.conf配置文件是否有误。

3.SVN未启动
解决方法:
启动SVN服务。

4.SVN客户端残留错误的历史数据
解决方法:
清除认证数据等(参见https://blog.csdn.net/zhouchenxuan/article/details/71249655,)。

“Authorization failed”

出现authorization failed异常,一般都是authz文件或者svnserve.conf里,用户组或者用户权限没有配置好,例如A用户只有访问DATA_TEAM/ProjectA的权限,客户端SVN 版本库URL却输入svn://*****/DATA_TEAM/ProjectB,可能会导致出现该问题。输入正确的SVN URL或修改上述两个文件解决该问题。
还有一种可能是密码输入错误问题,此时我们需要清除一下svn的缓存,解决方法见本小结第一个问题的第4个解决方法的连接。

0x04 官网以及SVN中文手册

官网中文地址:https://tortoisesvn.net/index.zh.html

另外,如果想进一步的了解SVN,可以阅读官网上的中文手册:https://mirrors.tuna.tsinghua.edu.cn/osdn/storage/g/t/to/tortoisesvn/1.13.1/Documentation/TortoiseSVN-1.13.1-zh_CN.pdf

以上。

参考文档:
1.http://www.blogjava.net/nkjava/archive/2011/08/29/357502.html
2.https://www.cnblogs.com/weifeng1463/p/7593729.html
3.https://blog.csdn.net/u012486840/article/details/52524389
4.https://blog.csdn.net/weixin_42418158/article/details/95982642
5.https://blog.csdn.net/zhouchenxuan/article/details/71249655

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值