本篇文章来引导大家在 Linux 系统上安装 SVN,写这篇文章主要是因为虽然网上关于 SVN 安装的教程有很多,但是按照教程部署中间过程总是会出现这样那样的问题,导致安装不成功,因此决定正式写一篇比较完整的安装教程给大家参考使用。

2023年 7月 21日 发表评论
腾讯云正在大促:点击直达 阿里云超级红包:点击领取
免费/便宜/高性价比服务器汇总入口(已更新):点击这里了解

本篇文章来引导大家在 Linux 系统上安装 SVN,写这篇文章主要是因为虽然网上关于 SVN 安装的教程有很多,但是按照教程部署中间过程总是会出现这样那样的问题,导致安装不成功,因此决定正式写一篇比较完整的安装教程给大家参考使用。

1. 安装 SVN

$  yum install -y subversion
image-20231119222444724

2. 创建一个 SVN 版本库

$ mkdir -p /data/svn/mysvn
创建一个存放项目的目录,此处目录名字不一定非要是 /data/svn/mysvn

$ svnadmin create /data/svn/mysvn/
将这个目录设置为项目目录

cd /data/svn/mysvn/
切换到这个目录下

$ ll  查看目录下的目录及文件信息
total 24
drwxr-xr-x 2 root root 4096 Nov 19 22:26 conf
drwxr-sr-x 6 root root 4096 Nov 19 22:26 db
-r--r--r-- 1 root root    2 Nov 19 22:26 format
drwxr-xr-x 2 root root 4096 Nov 19 22:26 hooks
drwxr-xr-x 2 root root 4096 Nov 19 22:26 locks
-rw-r--r-- 1 root root  246 Nov 19 22:26 README.txt

3. 配置 SVN 信息

第二步中可以看到在项目目录下有很多目录及文件,其中 conf 这个目录是版本库中的配置目录,里面存放的是配置文件,这里对 conf 目录下的三个文件的作用做下说明:

$ ll ./conf
-rw-r--r-- 1 root root 1080 Nov 19 22:26 authz
-rw-r--r-- 1 root root  885 Nov 19 22:26 hooks-env.tmpl
-rw-r--r-- 1 root root  309 Nov 19 22:26 passwd
-rw-r--r-- 1 root root 4375 Nov 19 22:26 svnserve.conf
  • authz:这个文件是用来做权限控制的
  • passwd:这个文件是账号密码文件
  • svnserve.conf:这个文件是 SVN 服务综合配置文件

了解到上述文件的作用之后,接下来就开始对配置文件进行编辑配置。首先是 authz 这个用来做权限控制的文件。

$ vim /data/svn/mysvn/conf/authz
image-20231119224158733

如上图,进入配置文件之后,修改为上图所示,关于上述内容总共有5 行内容,接下来我会对这 5 行内容进行一一的说明:

  • [groups]:表示标签,组标签
  • admin = admin,root,test:这里表示设置一个名为 admin 的用户组,而用户组中的用户包括 admin,root,test 这三个;
  • [/]:表示库目录的权限
  • @admin = rw:表示赋予 admin 用户组读写权限
  • *=r:表示除了用户组之外,其他非用户组的权限,都只能读

了解并配置了权限文件之后,接下来需要配置的是账号密码文件,账号密码文件是 passwd 这个文件,首先对它进行编辑:

$ vim /data/svn/mysvn/conf/passwd 
image-20231119225126686

这个文件的配置比较简单,相信大家也都是一看就懂,就是给 admin 用户组的每个用户都配置一个密码,这里因为演示,所以密码就随便写了一下,比较简单,但是不建议大家这么搞哈。接下来需要配置的是 SVN 服务综合配置文件啦。

$ vim /data/svn/mysvn/conf/svnserve.conf
image-20231119225610267

配置文件内容解释如下:

# 匿名访问的权限 可以是 read、write,none,默认为 read
anon-access = none

# 使授权用户有写权限
auth-access = write

# 密码数据库的路径
password-db = passwd

# 访问控制文件
authz-db = authz

#认证命名空间,SVN会在认证提示里显示,并且作为凭证缓存的关键字
realm = /data/svn/mysvn

[sasl]

4. 启动 SVN 服务

$ svnserve -d -r /data/svn/
$ mkdir -p /data/workspace/mysvn
$ svn checkout svn://127.0.0.1/mysvn --username root --password redhat
image-20231119231307220

可以看到,服务是成功启动,并且在本地生成一个 mysvn 的目录,这个就是项目的总目录

image-20231119231918559

以上是从本地提交文件到 SVN 服务器,其中 root 密码为 /data/svn/myproject/conf/passwd 文件中设置的密码。

本文来源:www.lxlinux.net/setup-svn-server-on-linux.html,若引用不当,请联系修改。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: