CentOS搭建SVN记录

1、安装subversion(client and server)

$ yum install subversion
$ yum install mod_dav_svn

安装成功之后使用 svnserve --version 看一下安装的版本

[root@localhost conf]# svnserve --version
svnserve, version 1.6.11 (r934486)
   compiled Aug 17 2015, 08:37:43

Copyright (C) 2000-2009 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).

The following repository back-end (FS) modules are available:

* fs_base : Module for working with a Berkeley DB repository.
* fs_fs : Module for working with a plain file (FSFS) repository.

Cyrus SASL authentication is available.

svn的版本是1.6.11,是一个老旧的版本了,官网上的版本已经是1.9.4,先不纠结这个问题,先用这个老版本

2、代码库创建

SVN软件安装完成后还需要建立SVN库,我将svn库的路径设在了/var/www/svn/game/test/下面

mkdir -p /var/www/svn/game/test
svnadmin create /var/www/svn/game/test

创建成功之后可以cd到这个目录看看

[root@localhost test]# ll
total 24
drwxr-xr-x. 2 root root 4096 Aug 18 18:13 conf
drwxr-sr-x. 6 root root 4096 Aug 18 03:07 db
-r--r--r--. 1 root root2 Aug 18 01:21 format
drwxr-xr-x. 2 root root 4096 Aug 18 01:21 hooks
drwxr-xr-x. 2 root root 4096 Aug 18 01:21 locks
-rw-r--r--. 1 root root  229 Aug 18 01:21 README.txt

目录结构创建如上,创建成功。

3、配置代码库

cd到/var/www/svn/game/test/conf下面
svnserve.conf(### This file controls the configuration of the svnserve daemon, if you use it to allow access to this repository.)
passwd(### This file is an example password file for svnserve.)
authz(### This file is an example authorization file for svnserve.)

vi svnserve.conf,在[general]下面追加或者打开注释

匿名访问的权限,可以是read,write,none,默认为read

anon-access=none

使授权用户有写权限

auth-access=write

密码数据库的路径

password-db=passwd

访问控制文件

authz-db=authz

认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字

realm=/opt/svn/repositories

PS:在[general]后面追加,我一开始看教程的时候,直接加在了文件的最后面,发现用户权限怎么都没有生效,查了好久才找到问题所在。

用户密码passwd配置 编辑passwd文件即可,内容很简单,username=passwd

权限控制authz配置,直接附上原文

Its format is identical to that of mod_authz_svn authorization

files.

As shown below each section defines authorizations for the path and

(optional) repository specified by the section name.

The authorizations follow. An authorization line can refer to:

- a single user,

- a group of users defined in a special [groups] section,

- an alias defined in a special [aliases] section,

- all authenticated users, using the '$authenticated' token,

- only anonymous users, using the '$anonymous' token,

- anyone, using the '*' wildcard.

A match can be inverted by prefixing the rule with '~'. Rules can

grant read ('r') access, read-write ('rw') access, or no access

('').

[aliases]

joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average

[groups]

harry_and_sally = harry,sally

harry_sally_and_joe = harry,sally,&joe

[/foo/bar]

harry = rw

&joe = r

* =

[repository:/baz/fuz]

@harry_and_sally = rw

4、相关命令

  1. 查看svn是否运行 ps -ef|grep svn|grep -v grep
  2. 停止SVN命令 killall svnserve
  3. 启动svn版本库 svnserve -d -r 目录名
  4. 如果目录名不同,svn的链接也不同。
  5. 如果我使用svnserve -d -r /var/www/svn/game/test
    则svn的地址为:svn://ip
    如果我使用svnserve -d -r /var/www/svn/
    则svn的地址为:svn://ip/game/test

5、后续

这种直接用svnserve运行的

posted @ 2016-08-19 09:43  rainInSun  阅读(215)  评论(0编辑  收藏  举报