[原创]Linux下的Subversion安装与配置

前言

  网上关于Subversion(以下SVN)的介绍已经很多了,这里不再赘述,打算深究的朋友请Google一下。
  据笔者测试,在Windows上创建SVN服务器的时候往往需要安装在Server级的发行版本上,原因是Windows的桌面版本默认有连接数限制,一般只能用于5人以下的小团队,且所有人不能同时连接到服务器进行操作。为了回避这一问题,笔者将目标锁定在了Linux平台上,主要基于以下的考虑:
  • Linux系统本身免费,且默认安装后无连接数限制问题,适合中大型团队;
  • Linux的几个主要的发行版本(RedHat,Debian,CentOS,Ubuntu)均提供了对SVN的良好支持;
  • 基于SVN的几个著名不良追迹系统(Bugzilla,Trac等)均是Linux平台上的原生软件。在Linux上部署SVN可以为将来的功能拓展打下基础。

    确认Linux版本

      首先需要做的是确认Linux的版本是否最新。
      注:如果您在工作环境中业已存在的计算机上进行本操作的话,请提前与系统管理员进行确认,因为这里的软件升级操作,可能会对您已经部署的其他应用产生影响。
  • su到root用户
    su - root
    password: ****
  • 系统升级在确保您已经连入互联网的情况下调出Linux的Console,并输入以下指令更新本地Package管理数据库:
    apt-get update
    apt-get upgrade
  • 安装SVN(可能需要插入Linux的安装光盘)
    apt-get install subversion
  • 安装Apache2服务器(可能需要插入Linux的安装光盘)
    apt-get install apache2 libapache2-svn
  • 创建SVN的宿主目录
    mkdir /SVNRoot
  • 创建SVN工程
    svnadmin create /SVNRoot/ProjectName
  • 将SVN宿主目录的所有权分配给Apache2的[www-data]用户
    chown -R www-data:www-data /SVNRoot

    配置

  • 修改Apache2的配置文件使之指向SVN的宿主目录此配置文件是[/etc/apache2/mods-available/dav_svn.conf]。您可以使用您所熟悉的任何文本编辑软件编辑它。
    这个文件中已经以注释的形式给出了一个良好的例子,笔者这里仅给出最小限的设定放案。
    <Location /svn>
        DAV svn
        SVNParentPath /SVNRoot
        AuthType Basic
        AuthName "Subversion Repository"
        AuthUserFile /etc/apache2/dav_svn.passwd
        AuthzSVNAccessFile /etc/apache2/dav_svn.authz
    </Location>
  • 创建SVN用户
    htpasswd -c /etc/apache2/dav_svn.passwd 用户名
    注:上面命令中的参数"-c"代表创建密码文件,仅在第一次执行时使用。
    输入两次密码以后用户便创建成功。依此类推,添加团队中的所有人员。
    我们这里创建7个用户:
    admin:超级用户
    TeamLeader1:User1/User2
    TeamLeader2:User3/User4
  • 分配访问权限 SVN的访问控制(读写操作)是基于路径的,而且是相对路径,这一点请一定注意。上面的配置文件中我们把访问控制文件指定为[/etc/apache2/dav_svn.authz],下面来创建此文件。
    [groups]
    superUser=admin
    TL=TeamLeader1,Teamleader2
    Dev=User1,User2,User3,User4
    
    [ProjectName:/trunk]
    @superUser=rw
    @TL=r
    @Dev=r
    
    [ProjectName:/branch]
    @superUser=rw
    @TL=rw
    @Dev=rw
    
    [ProjectName:/tag]
    @superUser=rw
    @TL=rw
    @Dev=r
  • 重启Apache2服务
    /etc/init.d/apache2 reload

    连接测试

    OK,到了这里SVN服务器的创建就告一段落了。您可使用IE或者任意SVN客户端连接此SVN服务器。连接地址为:
    http://服务器地址/svn/ProjectName
    笔者仅仅给出了最小限的配置教程,如果您还进行更详细的设定,请访问SVN的官方主页,或者干脆Google一下。
  • posted @ 2011-11-27 23:36  寸木  Views(430)  Comments(0Edit  收藏  举报