系统:Ubuntu20.04
链接来自:https://blog.csdn.net/weixin_42171170/article/details/106957520(学习用)
前言
由于文档资料越来越多,将所有资料都存放在自己的电脑上容易混淆,并且也不利于分享。这种情况下,考虑将资料上传SVN统一管理,这样一来其他人也能很方便的查略各种资料,事先说明一下,我用的是Ubuntu20.04的Linux系统搭建的本地SVN服务器,其他版本的Linux系统需要做一定的改动才能适用,以下是搭建SVN服务器的步骤。
一、安装SVN
安装前可以更新下源,使用sudo apt update
命令,如果有新的安装包使用sudo apt upgrade
命令安装。然后就是安装我们的SVN服务器了,使用命令:
sudo apt install subversion
- 1
安装完成之后通过svnserve --version
命令查看是否安装成功,正常会显示如下图所示的版本信息
表示安装成功了,我这里安装的SVN版本为1.13.0。
创建SVN版本库
终端中依次输入如下命令:
$ cd /opt
$ sudo mkdir svn
$ cd svn
$ sudo mkdir repository
$ sudo svnadmin create /opt/svn/repository //创建SVN仓库
- 1
- 2
- 3
- 4
- 5
这样一来会在repository下面建立以下文件:
其中conf文件夹下是存放的配置文件,包括SVN用户名的权限、密码这些,db里面的包含我们上传到SVN服务器上面的文档、代码等数据的不同版本。这里需要注意的是要对db文件夹释放权限,否则客户端可能无法连接SVN服务器。
在终端中输入如下命令:
sudo chmod -R 777 db
- 1
正常情况会变成如下图所示:
db文件夹变绿,代表着它此时拥有执行权限了。
修改配置文件
这一步主要是在repository文件夹下的conf这个文件夹里面的文件进行配置。总共有3个文件需要设置,下面依次说明:
1. 修改svnserve.conf文件
这个文件里面主要设置我们的SVN访问方式,如下图所示,主要修改其中3个地方即可:
这里主要有4个地方需要注意,具体作用已经在图片中写出了,其中需要重点说明的是authz和passwd这两个文件,为了后续多仓库管理的便捷性,这里的路径加了…/…/authz和…/…/passwd两个,代表着我们可以将权限设置文件和密码设置文件单独放置,这样后续需要使用SVN的人员多了,作为SVN服务器维护人员就可以很方便的添加用户的权限和密码了,团队大了或者是工程越来越多的时候可以极大的提高维护人员的工作效率。
2. 修改passwd文件
这个文件中主要是设置SVN用户的密码的,如下图所示:
设置了4个用户和对应的密码,格式为 “ 用户名 = 密码 ”,此文件主要管理SVN用户的密码。
3. 修改authz文件
这个文件相当重要,我们可以在这个文件中设置用户的读写权限,做到不同用户、不同项目组成员之间权限不互通,起到信息安全的目的。如下图所示:
具体意义及说明已经在图中标注写明了,图中的授权方式为对用户组进行授权,这里再提下
[/]
@admin = rw
@normal = r
- 1
- 2
- 3
这个部分的说明,上面的 [/] 表示对根目录进行授权,即用户组成员对所有项目都具有权限共通性,我们如果要针对不同项目去设置不同权限,可以如下操作
[JAVA:/]
Heath = rw //表示用户 Heath 对项目 JAVA 的所有内容具有读写权限
Liu = r //表示用户 Liu 对项目 JAVA 的所有内容仅具有读权限
[Python:/]
Ming = rw //表示用户 Ming 对项目 Python 的所有内容具有读写权限
Tao = r //表示用户 Tao 对项目 Python 的所有内容仅具有读权限
- 1
- 2
- 3
- 4
- 5
- 6
- 7
上面这种做法可以保证Heath仅拥有JAVA项目的读写权限,没有Python项目的权限,保证项目组成员之间的信息安全和项目安全,也便于项目组成员之间的管理。
启动SVN服务器
在终端中输入
sudo svnserve -d -r /opt/svn/
- 1
启动SVN服务器,这里说明下:
- -d:表示在后台运行
- -r:指定服务器的根目录
顺便给出停止服务器的命令:
killall svnserve
- 1
启动完成后通过ps aux | grep svnserve
命令查看是否启动成功,正常会有如下图所示结果:
表示SVN服务器启动成功了,这里为了保护服务器主机安全,建议开启防火墙,开启防火墙的操作见上一篇文章:Ubuntu20.04防火墙设置(简易教程) 。开启防火墙之后要给予SVN端口访问权限,SVN服务的默认端口为3690,必须先在服务器主机上打开3690端口的外部访问权限,如下图:
到这里,Linux系统上面的SVN服务器就搭建成功了。
测试服务器
首先在官网下载SVN客户端版本,这里给出我下好的1.14.0版本的路径,需要的小伙伴自取:SVN1.14.0&Chinese_Package。链接压缩包中包含SVN1.14.0的安装包和对应的简体中文语言包,安装好SVN客户端以后点击SVN Checkout
按钮,在弹出页面输入SVN服务器的地址,格式为svn://服务器ip/repository
。输入用户名和密码后正常可以弹出如下界面:
这样一来就搞定下载了,接下来进行文件上传测试。将需要上传的文件复制到svn仓库文件夹中,点击SVN Commit
按钮提交上传文件,如下图所示:
上传成功会有如下界面弹出:
到此,SVN服务器的搭建就结束了。