CentOS部署SVN
一、前言
服务器厂商:华为云;
Linux版本 : CentOS 8.2 64bit ;
SVN版本 :1.10.2;
闲谈:搭建的过程,主要是对端口的开发和配置文件的处理修改。看了很多篇文章,有头无尾,到后面就推不下去,连续的失败使我痛苦不已,基本流程如下图所示。
二、安装svnserve
1、查看svn版本
“rpm -qa subversion” 命令用于在 Linux 系统中查询已安装的 subversion 。
rpm -qa subversion
如果你安装了subversion,会显示如下信息。
2、卸载旧版本
“yum -y remove subversion” 命令卸载在 Linux 系统中已安装的 subversion 。
yum -y remove subversion
显示“Complete”,卸载已成功;
3、 下载安装
显示“Complete”,安装成功;
yum -y install subversion
三、创建版本库目录
版本库目录根据你的需要,创建一个文件夹进行管理你的SVN库。这个目录位置是可以自定义的,如下图所示,是我在“/var/”路径下创建svn文件夹的过程。
四、创建svn版本库
在版本库目录可能存在多个版本库,现在我们创建一个版本库“Note”。
#svnadmincreate <版本库名称>
svnadmin create Note
如下图所示,创建完成后,“cd /路径”进入到我们的svn版本库位置,“ls”查看版本库。(这个位置实在版本库路径下的,下图仅作为本章节效果演示)。
五、配置文件修改
在“conf”路径下,有三个文件需要配置修改;通过服务器远程访问、宝塔、WinSCR访问文件进行修改,通过vim指令进行配置修改;
- conf:是这个仓库配置文件(仓库用户访问账户,权限) ;
- format:是一个文本文件,里边只放了一个整数,表示当前文件库配置的版本号;
- hooks:放置hook脚步文件的目录;
- locks:用来放置subversion的db锁文件和db_logs锁文件的目录,用来追踪存取文件库的客户端。
1、 authz
在“conf”路径下,打开"authz"文件;
vim打开文件后,按一下”i“,开始对文件修改,可以设置组等操作,如图所示,对用户”admin“和”note“赋予读写权限,其他为空;
vim修改完成后,摁一下”Esc“键,输入”:wq“保存退出。
2、 passwd
在“conf”路径下,打开"passwd"文件;对用户进行密码设置;
#例如”admin = admin123“
#注意事项一个用户对应一个密码,在”=“左右各一个空格;
3、 svnserve.conf
在“conf”路径下,打开"svnserve.conf"文件;
- anon-access 控制非鉴权用户访问版本库的权限。
取值范围为"write"、"read"和"none"。即"write"为可读可写,"read"为只读,"none"表示无访问权限。缺省值:read
- auth-access 控制鉴权用户访问版本库的权限。
取值范围为"write"、"read"和"none"。即"write"为可读可写,"read"为只读,"none"表示无访问权限。缺省值:write
- password-db 指定用户名口令文件名。
除非指定绝对路径,否则文件位置为相对conf目录的相对路径。缺省值:passwd
- authz-db 指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。
除非指定绝对路径,否则文件位置为相对conf目录的相对路径。缺省值:authz
- realm 指定版本库的认证域,即在登录时提示的认证域名称。若两个版本库的认证域相同,建议使用相同的用户名口令数据文件。
缺省值:一个UUID(Universal Unique IDentifier,全局唯一标示)。
这个文件的配置的主要问题在:
(1)#authz-db = authz,按照教程来说,它应该是放开的,但在放开之后就会存在检出失败的问题。在这里我是给注掉了。
(2)“realm = /svn”改为了版本库目录路径,就是你上文创建的那个文件夹所在路径。这个也可不用修改。
(3)为了安全考虑,”anon-access = none“,只有用户方可访问。
PS:这个文件配置无误的话,我们就已经成功了70%。
六、防火墙配置
subversion 的默认端口为3690,可在服务器进行配置,或者使用命令进行端口开放。
1、关闭防火墙
service iptables stop
2、开启3690端口
/sbin/iptables -A INPUT -p tcp --dport 3690-j ACCEPT
验证
/sbin/iptables -L -n -v
保存
service iptables save
七、重启svn服务器
svnserve -d -r /版本库目录地址
查看3690是否启动。
netstat -apn | grep 3690
八、版本库检出
在linux服务器输入命令测试:
svn co svn://ip地址:3690/xxxx
八、结语
我们详细探讨了在 Linux 系统上安装和配置 Subversion(SVN)的过程。从基础的安装命令到仓库的创建,再到 防火墙 的配置,我们希望这些步骤能够帮助你顺利搭建自己的版本控制系统。SVN 是一个强大的工具,不仅能帮助开发者管理代码版本,还能促进团队协作和项目管理。
如果你在安装或使用过程中遇到问题,欢迎共同探讨,本文中的不当之处,也欢迎指正。
附录
如果你的svn检出失败,很有可能由以下原因引起的:
1、防火墙端口、宝塔端口未开启;
2、建议使用配置无误的conf文件进行比对,是否conf配置导致检出失败。
版权归原作者 山河梧念 所有, 如有侵权,请联系我们删除。