linux 安装svn服务端

时间:2021-11-24 09:43:13

最近需要在服务器配置svn,在网上找了很多资料,很多文章写的比较繁琐,思路也不是很清晰,本人最后在博客园找到了一篇文章,按照他的思路完成了svn服务端的配置,各位可以关注一下他的博客小茗同学的博客园,这里不是做广告,而是觉得人家确实是做技术比较认真的。值得学习。
本人使用的是aliyun的linux系统,这个系统跟centos没什么差别,而且还很贴心的帮你预装了很多插件。

一、安装

使用yum安装,也可以使用下载的压缩工具包安装,建议使用yum安装,方便快捷。

yum install subversion

二、配置

1.创建仓库

我们在opt文件夹下创建svn/svnroom/svnv1目录(这个仓库的目录根据自己的喜欢创建,千万不要像我一样创建这么长,建议最多创建2级即可)

#进入opt目录
cd /opt
#创建 svn以及子目录svnroom再以及svnv1
mkdir svn/svnroom/svnv1
#创建svn仓
svnadmin create /opt/svn/svnroom/svnv1

linux 安装svn服务端
因为我已经创建过了,再执行svnadmin create命令就会出现已经被创建的提示,没有的话创建完毕ls命令就可以看见你的目录下多了几个文件。
conf db format hooks locks README.txt
conf文件下就是svn的配置文件

cd conf
ls

linux 安装svn服务端
authz 是权限控制文件
passwd 是帐号密码文件
svnserve.conf 是SVN服务配置文件

2.修改配置文件

2.1 配置passwd

vi passwd

linux 安装svn服务端
创建用户的格式是 用户名 = 密码
例如

[users]
test1=123456
test2=123456

创建后:wq保存下

2.2 配置authz

vi authz

linux 安装svn服务端
添加格式 用户名=rw(读写)或者 用户名 =r(只读)

[/]
username=rw
test1=r
test2=r
*=

注意:在编辑authz的时候记得一定要添加”[/]”,”[/]”表示仓下的所以路径,我开始的时候没有添加导致svn一直无法查询到路径,还有添加”*=”是让其他用户无操作权限,保证svn的安全性。

拓展:使用用户分组
在authz中编辑

[groups]
group1 = username
group2 = test1,test2
[/]
@group1 = rw
@group2 = r
* =

这样就是针对组进行权限设计。上面配置中创建了2个分组,分组1的用户可读可写,分组2的用户只读。
格式说明:

版本库目录格式:
[<版本库>:/项目/目录]
@<用户组名> = <权限>
<用户名> = <权限>

2.3 配置svnserve.conf

vi svnserve.conf

linux 安装svn服务端

取消这5个注释
anon-access = read #匿名用户可读
auth-access = write #授权用户可写
password-db = passwd #使用哪个文件作为账号文件
authz-db = authz #使用哪个文件作为权限文件
realm = /opt/svn/svnroom/svnv1 # 认证空间名,版本库所在目录

注意:
(1)realm去掉这个注释后,记得千万改成自己配置的路径,就是创建的那个,开始的时候只接触注释,没有修改路径,一直出问题,这里强调一下。
(2)取消注释的时候,记住千万前面不能留空格,会报错的,再次强调。

3 svn的启动与停止

启动

svnserve -d -r /opt/svn/svnroom/svnv1 (再次希望各位不要弄这么多的文件目录)

停止(svn的停止有点坑爹,没有stop等命令,停止只能杀死进程,我查看目前的资料是这个样子的)

ps -ef|grep svnserve

linux 安装svn服务端
查看svn的进程然后kill掉

kill -9 进程id

4 客户端连接测试

(1)下载TortoiseSVN客户端
(2)安装完成,选择一个文件夹鼠标右键,你会看见你的工具栏中多了SVN checkout
linux 安装svn服务端
选择你的svn://127.0.0.1(svn://ip地址),默认端口3690
输入你的用户名密码即可

参考文章:
Linux下安装SVN服务端小白教程