2008年9月7日星期日

RHEL5安装Subversion

  1. 环境准备
    安装包采用RHEL5光盘上自带的subversion-1.4.2-2.el5.rpm,注意不能安装最新的subversion-1.5.1版本,经测试与sventon-1.4.0不能兼容。
    添加svn帐户svnroot,用于svn存储库。

  2. 配置svn存储库
    切换到svnroot身份,创建目录/home/svnroot/repository
    建立pal代码库,svnadmin create /home/svnroot/repository/pal
    修改代码库配置文件,/home/svnroot/repository/pal/conf/svnserve.conf,内容如下:
    [general]
    anon-access = none
    auth-access = write
    password-db = /home/svnroot/repository/pwd.conf
    authz-db = /home/svnroot/repository/authz.conf
    realm = pal

    删除/home/svnroot/repository/pal/conf/authz及/home/svnroot/repository/pal/conf/pwd两个文件。

  3. 建立访问用户及权限
    建立用户及口令,创建文件/home/svnroot/repository/pwd.conf,内容如下:
    [users]
    svnclient = svnclient1234
    testuser = testuser1234

    建立访问权限,创建文件/home/svnroot/repository/authz.conf,内容如下:
    [groups]
    admin = svnclient
    programer = testuser

    [pal:/]
    @admin = rw
    @programer = r

    [pal:/code]
    @programer = r

    [pal:/design]
    @programer =

    [pal:/document]
    @programer =

    [pal:/technical]
    @programer =
    以上的配置建立了两个用户组,admin和programer,给予admin组pal代码库根目录及其下子目录的读写权限,给予programer组pal代码库根目录和code子目录的只读权限,design,document,technical子目录拒绝访问。

  4. 将svn服务添加入xinetd
    切换回root帐户,进入/etc/xinetd.d/,新建文件svn,内容为:
    service svn
    {
            socket_type     = stream
            protocol        = tcp
            wait            = no
            user            = root
            server          = /usr/bin/svnserve
            server_args     = -i -r /home/svnroot/repository
            disable         = no
    }

    重新启动xinetd,svn服务自动启动。

  5. sventon安装
    sventon是一个Subversion的Web浏览工具,下载地址www.sventon.org,目前版本1.4.0。
    先安装tomcat 5.5以上版本,本例使用6.0.18,修改server.xml中的8080 connector配置如下:
    <Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
                   connectionTimeout="20000"
                   URIEncoding="UTF-8"
                   useBodyEncodingForURI="true"
                   redirectPort="8443" />
    注意红色的部分,这样网页才能正常显示中文路径及文件名。
    将svn.war部署到tomcat容器中,浏览器中打开http://<host>/svn,出现配置页面。注意sventon有两种浏览模式,一种是全局使用一个用户,所有人都可访问svn库中的内容,此模式支持路径及文件名的搜索;另一种是使用者输入自己的svn用户名及密码,只能访问自己有权限的内容,此模式不支持搜索功能。