zoukankan      html  css  js  c++  java
  • 离线安装svn

    最近在折腾SVN的安装和配置。尽管Google Code已经有完美的4GB空间的SVN服务,Git也有完善的Git工具,但有时候需要搭建一个私人的版本库。
      SVN其实就是Subversion,分为服务器端和客户端。本次折腾是记录在服务器端的安装过程。

    系统环境说明如下:

    操作系统:        Centos6.4 x86
    SVN:             subversion-1.8.0
    Apache:          httpd-2.4.6

    如开启防火墙,则需添加如下列的规则以放行svn的3690端口

    iptables -A INPUT -p tcp --dport 3690 -j ACCEPT
    iptables save

    检查是否安装了低版本的SVN

    rpm -qa | grep subversion

    一般返回的默认版本:

    subversion-1.6.11-9.el6_4.i686

    卸载旧版本SVN

    yum remove subversion
    rpm -e subversion --nodeps

    下载、编译、安装的步骤

    1、编译安装httpd-2.4.6

    下载并解压依赖包apr-1.4.8、apr-util-1.5.2

    wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-1.4.8.tar.gz
    wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-util-1.5.2.tar.gz
    tar -zxf apr-1.4.8.tar.gz
    tar -zxf apr-util-1.5.2.tar.gz

    下载并解压httpd-2.4.6

    wget http://mirrors.tuna.tsinghua.edu.cn/apache//httpd/httpd-2.4.6.tar.gz
    tar -zxf httpd-2.4.6.tar.gz

    移动apr-1.4.8、apr-util-1.5.2到httpd-2.4.6的srclib目录下

    mv apr-1.4.8 httpd-2.4.6/srclib/apr
    mv apr-util-1.5.2 httpd-2.4.6/srclib/apr-util

    编译httpd-2.4.6

    cd httpd-2.4.6
    ./configure --prefix=/usr/local/apache --enable-so --enable-dav --enable-deflate=shared --enable-ssl=shared --enable-expires=shared  --enable-headers=shared --enable-rewrite=shared --enable-static-support  --with-included-apr --enable-modules=all --enable-mods-shared=all --with-mpm=prefork
    make && make install

    2、编译安装subversion-1.8.0

    编译安装sqlite3.7.17

    wget http://www.sqlite.org/2013/sqlite-autoconf-3071700.tar.gz
    tar -zxf sqlite-autoconf-3071700.tar.gz
    cd sqlite-autoconf-3071700
    ./configure
    make && make install

    下载svn源码包并安装

    wget http://mirrors.tuna.tsinghua.edu.cn/apache/subversion/subversion-1.8.0.tar.gz
    tar -zxf subversion-1.8.0.tar.gz
    cd subversion-1.8.0
    ./configure --with-apr=/usr/local/apache --with-apr-util=/usr/local/apache --with-sqlite=/usr/local
    make && make install 
    

    检查安装是否成功

    svnserve --version

    返回值:

    svnserve, version 1.8.0 (r1490375)
       compiled Jul 23 2013, 21:32:09 on i686-pc-linux-gnu
    Copyright (C) 2013 The Apache Software Foundation.
    This software consists of contributions made by many people;
    see the NOTICE file for more information.
    Subversion is open source software, see http://subversion.apache.org/
    
    The following repository back-end (FS) modules are available:
    * fs_fs : Module for working with a plain file (FSFS) repository.
    Cyrus SASL authentication is available.

    代码库创建

    mkdir -p /opt/svn/repositories
    svnadmin create /opt/svn/repositories

    执行上面的命令后,自动建立repositories库,查看/opt/svn/repositories 文件夹发现包含了conf,db,format,hooks,locks, README.txt等文件,说明一个SVN库建立完成。

    配置代码库
    进入上面生成的文件夹conf下,进行配置 

    cd /opt/svn/repositories/conf

    用户密码passwd配置

    vi passwd

    passwd文件的内容如下:

    ### This file is an example password file for svnserve.
    ### Its format is similar to that of svnserve.conf. As shown in the
    ### example below it contains one section labelled [users].
    ### The name and password for each user follow, one account per line.
    
    [users]
    # harry = harryssecret
    # sally = sallyssecret
    test = 123456789

    权限控制authz配置

    vi authz

    目的是设置哪些用户可以访问哪些目录,authz文件的内容如下:

    ### This file is an example authorization file for svnserve.
    ### 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
    # * = r
    
    [/]
    test = rw
    

    设置[/]代表根目录下所有的资源 

    服务svnserve.conf配置

    vi svnserve.conf

    svnserve.conf文件的内容如下:

    [general]
    #匿名访问的权限,可以是read,write,none,默认为read
    anon-access=none
    #使授权用户有写权限 
    auth-access=write
    #密码数据库的路径 
    password-db=passwd
    #访问控制文件 
    authz-db=authz
    #认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字 
    realm=/opt/svn/repositories

    启动svn服务

    svnserve -d -r /opt/svn/repositories

    查看SVN进程

    ps -ef|grep svn|grep -v grep
    

    返回

    root     20850     1  0 Jul24 ?        00:00:00 svnserve -d -r /opt/svn/repositories

    查看SVN监听的端口

    netstat -ln |grep 3690

    停止启动SVN

    killall svnserve    #停止 
    svnserve -d -r /opt/svn/repositories  #启动
    

    目前最流行的svn客户端非TortoiseSVN莫属

  • 相关阅读:
    nginx启动
    java中有三种移位运算符
    easyUI属性汇总
    rose学习
    eclipse 启动到load workbench 后静止
    nvl函数
    Io 异常: Socket closed
    编译错误和运行时错误
    java 二进制编码
    MyFormat 幫助類
  • 原文地址:https://www.cnblogs.com/wizzhangquan/p/4564089.html
Copyright © 2011-2022 走看看