阿里云(CentOs)搭建SVN服务
系统环境
CentOS Linux release 7.6.1810 (Core)
一、通过yum命令安装svnserve,命令如下:
yum -y install subversion
此命令会全自动安装svn服务器相关服务和依赖,安装完成会自动停止命令运行
若需查看svn安装位置,可以用以下命令:
rpm -ql subversion
注意:yum依赖python2,若服务器上安装了python3,则第一步可能会报错
解决办法:修改报错的文件,将*****python改为***python2
二、创建版本库目录(此仅为目录,为后面创建版本库提供存放位置)
mkdir /home/svn/one
(one为你预期的版本库名称,可自定义)
三、创建svn版本库
创建版本库
svnadmin create /home/svn/one/
创建成功后,进入one目录下
查看文件列表
[root@iZm2lpklv45fcaZ one]# ll
total 24
drwxr-xr-x 2 root root 4096 Dec 19 17:29 conf
drwxr-sr-x 6 root root 4096 Dec 19 17:21 db
-r--r--r-- 1 root root 2 Dec 19 17:10 format
drwxr-xr-x 2 root root 4096 Dec 19 17:10 hooks
drwxr-xr-x 2 root root 4096 Dec 19 17:10 locks
-rw-r--r-- 1 root root 229 Dec 19 17:10 README.txt
四、修改服务端SVN配置
进入conf文件夹,并查看文件列表
[root@iZm2lpklv45fcaZ one]# cd conf/
[root@iZm2lpklv45fcaZ conf]# ll
total 12
-rw-r--r-- 1 root root 1155 Dec 19 17:29 authz
-rw-r--r-- 1 root root 405 Dec 19 17:28 passwd
-rw-r--r-- 1 root root 3074 Dec 19 17:14 svnserve.conf
[root@iZm2lpklv45fcaZ conf]#
文件说明:
authz:负责账号权限的管理,控制账号是否读写权限
passwd:负责账号和密码的用户名单管理
svnserve.conf:svn服务器配置文件
1.编辑 password文件
### This file is an example password file for svnserve.
### Its format is similar to that of svnserve.conf. As shown in the
### example below it contains one section labelled [users].
### The name and password for each user follow, one account per line.
[users]
# harry = harryssecret
# sally = sallyssecret
luxingda = luxingda
zhanghongchao = zhanghongchao
menjianyong = menjianyong
duheming = duheming
备注:
[user]标签代表用户列表,格式为‘账号’-‘密码’
2.编辑authz文件(注意:[/]也是必须的)
[groups] # harry_and_sally = harry,sally # harry_sally_and_joe = harry,sally,&joe group1 = luxingda,zhanghongchao,menjianyong,duheming [/] @group1 = rw * = r
备注:
我设置了一个用户组(group1),该组下用户为上面四个用户
[/]代表根目录
@group1 = rw 代表该用户组拥有读写权限
* = r 代表匿名用户拥有读权限
3.编辑 svnserve.conf 文件(注意:配置的前面不能有空格,一定要顶格写)
anon-access = read:表示允许匿名用户读。
auth-access = write:表示授权用户拥有读写权限。
password-db = passswd:指定用户名口令文件,即 passwd 文件。
authz-db = authz:指定权限配置文件,即 authz 文件。
realm = /home/svn/one:指定认证域,即 /home/svn/one目录。
五、修改防火墙配置
1、查看Linux版本
[root@iZm2lpklv45fcaZ conf]# lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 7.6.1810 (Core)
Release: 7.6.1810
Codename: Core
本服务器为CentOS 7(因此这里只介绍CentOS7如何修改防火墙配置) ,Centos 7使用firewalld代替了原来的iptables。下面介绍如何开放端口
2、开放端口
[root@iZm2lpklv45fcaZ conf]# firewall-cmd --zone=public --add-port=3690/tcp --permanent
success
SVN服务默认端口为3690,因此将其开放即可
3、查询端口号3690 是否开启:
[root@iZm2lpklv45fcaZ conf]# firewall-cmd --query-port=3690/tcp
no
4、重启防火墙
[root@iZm2lpklv45fcaZ conf]# firewall-cmd --reload
success
5、查看哪些端口为开放状态
[root@iZm2lpklv45fcaZ conf]# firewall-cmd --list-port
20/tcp 21/tcp 22/tcp 80/tcp 8888/tcp 39000-40000/tcp 888/tcp 3306/tcp 3306/udp 8080/tcp 8080/udp 3080/tcp 3080/udp 3043/tcp 3043/udp 4443/tcp 4443/udp 9999/tcp 3690/tcp
6、其他配置
若服务器为阿里云等云服务器,还需要在后台管理新增一条防火墙的放行规则,因操作简单,此处不做介绍
六、启动SVN服务
svnserve -d -r /home/svn/one
备注:默认端口为3690,若想使用其他端口,则使用如下命令即可(svnserve -dr /home/svn/one --listen-port 9999)
启动成功后,可用ps -aux查看服务启动是否成功
root 636 1 0 Dec19 ? 00:00:00 svnserve -d -r /home/svn/one
root 14901 12997 0 09:09 pts/0 00:00:00 grep --color=auto svnserve
七、客户端访问svn服务器
在windows客户端,使用小乌龟软件或开发工具的svn插件,输入地址:svn://ip地址:3690
checkout
即可将服务端版本检出
因为我们设置的是匿名用户可读,所以此处暂时不用登陆svn
如果需要上传文件,则插件会提示输入账号密码
至此,SVN安装完成
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律