CentOS安装svn服务器

来源:互联网 发布:吴亦凡长相知乎 编辑:程序博客网 时间:2024/05/21 19:26
  • 使用yum命令一键安装
    yum install subversion    yum install mod_dav_svn
  • 创建SVN数据目录和配置目录
    mkdir -p /mnt/svn/data #用来存放版本仓库的数据    mkdir -p /mnt/svn/conf #用来存放版本仓库的配置

其实每个仓库都有一份独立的配置文件,可以配置用户和密码还有每个用户的权限,这样做只是为了方便在同一份配置文件中管理多个仓库,当然conf目录不是必要的,视具体情况而定。

  • 在mnt/svn/data目录下创建一个doc目录,并初始化为仓库
    mkdir /mnt/svn/data/doc    svnadmin create /mnt/svn/data/doc #把doc目录初始化为仓库

初始化后doc目录如下

    root:/mnt/svn/data/doc>ll    total 16    drwxr-xr-x. 2 root root   79 Feb 22 22:19 conf    drwxr-sr-x. 6 root root 4096 Feb 22 22:43 db    -r--r--r--. 1 root root    2 Feb 22 22:11 format    drwxr-xr-x. 2 root root 4096 Feb 22 22:11 hooks    drwxr-xr-x. 2 root root   39 Feb 22 22:11 locks    -rw-r--r--. 1 root root  229 Feb 22 22:11 README.txt

其中conf目录存放的就是该仓库配置文件

    root:/mnt/svn/data/doc/conf>ll    total 16    -rw-r--r--. 1 root root 1080 Feb 22 22:11 authz    -rw-r--r--. 1 root root  309 Feb 22 22:11 passwd    -rw-r--r--. 1 root root 3110 Feb 22 22:19 svnserve.conf
  • 备份一个svnserve.conf并修改svnserve.conf
    cd /mnt/svn/data/doc/conf    cp svnserve.conf.default    vim svnserve.conf

去掉19、20、27、34行的注释,并修改27行和34行如下

    19 anon-access = read    20 auth-access = write    27 password-db = /mnt/svn/conf/passwd #指向配置目录的配置文件    34 authz-db = /mnt/svn/conf/authz #指向配置目录的配置文件
  • 复制doc/conf的authz文件和passwd文件到/mnt/svn/conf下
    cd /mnt/svn/data/doc/conf    cp authz passwd /mnt/svn/conf
  • 在配置文件目录下修改配置文件,添加用户和仓库权限
    cd /mnt/svn/conf    vim passwd    #添加用户      6 [users]      7 # harry = harryssecret      8 # sally = sallyssecret      9 linxl = linxl     10 wangjm = wangjm     11 wangbm = wangbom    vim authz     21 [groups]     22 # harry_and_sally = harry,sally     23 # harry_sally_and_joe = harry,sally,&joe     24 public_document_group = linxl,wangjm,wangbm     25     26 # [/foo/bar]     27 # harry = rw     28 # &joe = r     29 # * =     30     31 #[repository:/baz/fuz]     32 # @harry_and_sally = rw     33 # * = r     34 [doc:/]     35 @public_document_group = rw     36 * =

authz文件24行为设置用户分组

34行为仓库名和该仓库下的某个目录

下面定义该仓库的该目录下的组的权限和用户全选,组名前加@,r为只读,rw为读写,* = 表示其他用户对该仓库的该目录没有读写权限

如果有多个仓库,可以继续在下面添加,比如

    [doc2:/client/]    wangbm = r    * = 

表示仓库doc2的client目录,用户wangbm有读的权限

  • 启动SVN服务
    svnserve -d -r /mnt/svn/data #在后台启动data下所有的仓库    ps aux | grep svn #查看svn服务是否启动,出现下面的内容即为成功启动    [root:/mnt/svn/conf]# ps aux | grep svn    root     16931  0.0  0.0 156632   752 ?        Ss   21:13   0:00 svnserve -d -r /mnt/svn/data/    #另外,关闭svn服务命令    pkill svnserve    #也可以使用kill进程号

这时可以在客户端中使用SVN管理文件了。

  • 最后,可以在SVN服务的启动和关闭写成脚本放到/mnt/svn目录下,在修改了配置文件后可以方便重启服务
0 0