本篇文章来引导大家在 Linux 系统上安装 SVN,写这篇文章主要是因为虽然网上关于 SVN 安装的教程有很多,但是按照教程部署中间过程总是会出现这样那样的问题,导致安装不成功,因此决定正式写一篇比较完整的安装教程给大家参考使用。
1. 安装 SVN
$ yum install -y subversion
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
如上图,进入配置文件之后,修改为上图所示,关于上述内容总共有5 行内容,接下来我会对这 5 行内容进行一一的说明:
-
[groups]:表示标签,组标签 -
admin = admin,root,test:这里表示设置一个名为 admin 的用户组,而用户组中的用户包括 admin,root,test 这三个; -
[/]:表示库目录的权限 -
@admin = rw:表示赋予 admin 用户组读写权限 -
*=r:表示除了用户组之外,其他非用户组的权限,都只能读
了解并配置了权限文件之后,接下来需要配置的是账号密码文件,账号密码文件是 passwd 这个文件,首先对它进行编辑:
$ vim /data/svn/mysvn/conf/passwd
这个文件的配置比较简单,相信大家也都是一看就懂,就是给 admin 用户组的每个用户都配置一个密码,这里因为演示,所以密码就随便写了一下,比较简单,但是不建议大家这么搞哈。接下来需要配置的是 SVN 服务综合配置文件啦。
$ vim /data/svn/mysvn/conf/svnserve.conf
配置文件内容解释如下:
# 匿名访问的权限 可以是 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
可以看到,服务是成功启动,并且在本地生成一个 mysvn 的目录,这个就是项目的总目录
以上是从本地提交文件到 SVN 服务器,其中 root
密码为 /data/svn/myproject/conf/passwd
文件中设置的密码。以上就是 SVN 的搭建过程,SVN 其实是一个开源的版本控制系统,它可以通过使用分支管理方式来实现系统的高效管理,可以用于多个人同时开发一个项目实现资源共享和集中式的管理目的。
SVN 的设计在速度运行方面有了很大的提升。因为它支持的信息量少、资源传输也不多,跟其他一些系统比起来,它的离线模式可以避免网络拥挤的现象。另外就是安全方面,它实现了控制和系统两方面的结合,使得系统整体的安全性得以保障,是目前比较流行的开源版本控制系统。