zoukankan      html  css  js  c++  java
  • Centos7.X 源码编译安装subversion svn1.8.x

    说明:
    SVN(subversion)的运行方式有两种:
    一种是基于Apache的http、https网页访问形式;
    还有一种是基于svnserve的独立服务器模式。
    SVN的数据存储方式也有两种:一种是在Berkeley DB数据库中存储数据;另一种是使用普通的文件FSFS存储数据。
    由于Berkeley DB方式在使用中有可能锁住数据,一般建议使用FSFS方式更安全。
    实现目的:
    以svnserve的独立服务器模式,使用FSFS数据存储方式源码编译安装配置SVN服务器。
    具体操作:
    操作系统:CentOS 6.x
    服务器IP:192.168.21.134


    一、关闭SELINUX
    vi /etc/selinux/config
    #SELINUX=enforcing #注释掉
    #SELINUXTYPE=targeted #注释掉
    SELINUX=disabled #增加
    :wq! #保存退出
    setenforce 0 #使配置立即生效


    二、开启防火墙端口
    基于svnserve的独立服务器模式,默认端口为3690
    vi /etc/sysconfig/iptables #编辑防火墙配置文件
    # Firewall configuration written by system-config-firewall
    # Manual customization of this file is not recommended.
    *filter
    :INPUT ACCEPT [0:0]
    :FORWARD ACCEPT [0:0]
    :OUTPUT ACCEPT [0:0]
    -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    -A INPUT -p icmp -j ACCEPT
    -A INPUT -i lo -j ACCEPT
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
    -A INPUT -j REJECT --reject-with icmp-host-prohibited
    -A FORWARD -j REJECT --reject-with icmp-host-prohibited
    COMMIT
    :wq! #保存退出
    service iptables restart #最后重启防火墙使配置生效


    三、安装编译工具包
    yum install apr* autoconf automake bison cloog-ppl compat* cpp curl curl-devel fontconfig fontconfig-devel freetype freetype* freetype-devel gcc gcc-c++ gtk+-devel gd gettext gettext-devel glibc kernel kernel-headers keyutils keyutils-libs-devel krb5-devel libcom_err-devel libpng* libjpeg* libsepol-devel libselinux-devel libstdc++-devel libtool libtool* libgomp libxml2 libxml2-devel libXpm* libtiff libtiff* libX* make mpfr ncurses* ntp openssl openssl-devel patch pcre-devel perl php-common php-gd policycoreutils ppl telnet t1lib t1lib* nasm nasm* wget zlib-devel zlib unzip perl-ExtUtils-Embed
    yum remove apr apr-util subversion subversion-libs #删除系统中原有的svn及依赖包


    四、下载svn需要的依赖软件包
    说明:安装svn需要的软件包:apr apr-util serf scons openssl
    软件包存放目录:/usr/local/src
    https://dist.apache.org/repos/dist/release/apr/apr-1.5.2.tar.gz
    https://dist.apache.org/repos/dist/release/apr/apr-util-1.5.4.tar.gz
    http://prdownloads.sourceforge.net/scons/scons-2.3.5.tar.gz
    http://www.openssl.org/source/openssl-1.0.1o.tar.gz
    http://fossies.org/linux/www/serf-1.3.8.tar.gz
    http://www.apache.org/dist/subversion/subversion-1.8.13.tar.gz
    http://www.sqlite.org/snapshot/sqlite-amalgamation-201506201411.zip


    五、安装SVN
    1、安装apr
    cd /usr/local/src #进入软件包存放目录
    tar zxvf apr-1.5.2.tar.gz #解压
    cd apr-1.5.2 #进入安装目录
    ./configure --prefix=/usr/local/apr #配置
    make #编译
    make install #安装


    2、安装apr-util
    cd /usr/local/src
    tar zxvf apr-util-1.5.4.tar.gz
    cd apr-util-1.5.4
    ./configure --with-apr=/usr/local/apr/bin/apr-1-config
    make && make install


    3、安装scons
    cd /usr/local/src
    tar zxvf scons-2.3.5.tar.gz
    cd scons-2.3.5
    python setup.py install #配置安装


    4、安装openssl
    cd /usr/local/src
    tar zxvf openssl-1.0.1o.tar.gz
    cd openssl-1.0.1o
    CFLAGS=-fPIC ./config --prefix=/usr/local/openssl enable-shared
    make && make install
    vi /etc/profile #添加系统环境变量
    export PATH=$PATH:/usr/local/openssl/bin
    :wq! #保存退出
    source /etc/profile #使配置生效
    ln -s /usr/local/openssl/include/openssl /usr/include/openssl #添加系统软连接


    5、安装serf
    cd /usr/local/src
    tar zxvf serf-1.3.8.tar.gz
    cd serf-1.3.8
    scons PREFIX=/usr/local/serf APR=/usr/local/apr/bin/apr-1-config APU=/usr/local/apr/bin/apu-1-config OPENSSL=/usr/local/openssl
    scons install
    cd /usr/local/serf/lib
    cp libserf-1.so* /usr/local/lib/ #拷贝文件到系统目录


    6、安装svn
    cd /usr/local/src
    tar zxvf subversion-1.8.13.tar.gz
    cd subversion-1.8.13
    mkdir /usr/local/src/subversion-1.8.13/sqlite-amalgamation #创建sqlite-amalgamation目录
    cd /usr/local/src
    unzip sqlite-amalgamation-201506201411.zip -d /usr/local/src/subversion-1.8.13/sqlite-amalgamation
    #解压sqlite-amalgamation软件包到sqlite-amalgamation目录
    ./configure --prefix=/usr/local/svn --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config --with-serf=/usr/local/serf --with-openssl=/usr/local/openssl --enable-mod-activation #配置
    make #编译
    make install #安装
    vi /etc/profile #添加系统环境变量,添加到最后一行
    export PATH=$PATH:/usr/local/svn/bin
    :wq! #保存退出
    source /etc/profile #使配置立刻生效
    whereis libexpat.so.1 #查找文件安装目录,如下:
    libexpat.so: /lib/libexpat.so.0 /usr/local/lib/libexpat.so /usr/local/lib/libexpat.so.1
    vi /etc/ld.so.conf #编辑加入libexpat.so.1的目录
    /usr/local/lib/
    :wq! #保存退出
    ldconfig #使配置生效


    7、测试安装是否成功:
    svn help #查看svn帮助信息
    svnserve --version #查看svn版本信息
    svn --version


    六、配置svn
    1、创建svn代码库
    mkdir -p /mnt/svn #创建目录
    svnadmin create /mnt/svn #创建svn代码库
    #上面的命令执行完成之后,会自动建立svn库,在/mnt/svn文件夹含了conf,db,format,hooks,locks,README.txt等文件。
    #说明svn代码库创建成功。


    2、配置svn代码库
    cd /mnt/svn/conf #进入配置文件存放目录
    vi /mnt/svn/conf/svnserve.conf #配置全局文件,在最后添加以下代码

    [general]
    anon-access=none #禁止匿名访问,设置为none。默认为read,参数:read,write,none
    auth-access=write #授权用户写权限
    password-db=passwd #用户账号密码文件路径,可以写绝对路径
    authz-db=authz #访问控制权限文件路径,可以写绝对路径
    realm=svn #每个SVN项目的认证命,会在认证提示里显示,建议写项目名称。
    

     :wq! #保存退出
    vi /mnt/svn/conf/passwd #配置用户密码

    [users]
    # harry = harryssecret
    # sally = sallyssecret
    osyunwei=123456
    test=123456
    test2=123456
    

     :wq! #保存退出
    vi /mnt/svn/conf/authz #配置权限控制文件,设置用户可以访问的目录

    [groups]
    admin = osyunwei
    users = test,test2
    [/]
    @admin = rw
    * = r
    

     :wq! #保存退出
    #[/]代表根目录下所有的资源


    3、启动svn
    svnserve -d -r /mnt/svn --listen-port 3690
    ps -ef|grep svn|grep -v grep #查看svn进程
    root 12538 1 0 14:40 ? 00:00:00 svnserve -d -r /mnt/svn
    netstat -ln |grep 3690 #检查svn端口
    tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN
    killall svnserve #关闭svn服务


    4、设置svn服务开机启动
    vi /etc/rc.d/init.d/svn #编辑,添加以下代码 whereis svnserve

    #!/bin/sh
    # chkconfig: 2345 85 85
    # processname: svn
    svn_port=3690
    svn_home=/mnt/svn
    if [ ! -f "/usr/local/svn/bin/svnserve" ]
    then
    echo "svnserver startup: cannot start"
    exit
    fi
    case "$1" in
    start)
    echo "Starting svnserve..."
    /usr/local/svn/bin/svnserve -d -r $svn_home --listen-port $svn_port
    echo "Successfully!"
    ;;
    stop)
    echo "Stoping svnserve..."
    killall svnserve
    echo "Successfully!"
    ;;
    restart)
    $0 stop
    $0 start
    ;;
    *)
    echo "Usage: svn { start | stop | restart } "
    exit 1
    esac
    


    :wq! #保存退出
    chmod +x /etc/rc.d/init.d/svn #添加执行权限
    chkconfig svn on #开启自启动


    5、测试svn
    svn checkout svn://192.168.21.134/ --username=osyunwei --password=123456 #将文件下载到本地目录
    svn update --username=osyunwei --password=123456 #更新上次修改之后的版本库

    =================================================
    svn提交的时候强制写注释

    cd /mnt/svn/hooks
    cp pre-commit.tmpl pre-commit
    chmod 777  pre-commit

    vi pre-commit

    #!/bin/sh
    REPOS="$1"
    TXN="$2"
    
    SVNLOOK=/usr/local/bin/svnlook #修改为pre-commit中的提示路径,服务器安装的subversion目录 whereis svnlook
    
    LOGMSG=`$SVNLOOK log -t "$TXN" "$REPOS" | grep "[a-zA-Z0-9]" | wc -c`
    if [ "$LOGMSG" -lt 5 ];
    then
      echo -e "注释信息不能为空且不少于5个字!" 1>&2
      exit 1
    fi
    exit 0
    

      =================================================


    七、使用客户端连接svn服务器
    系统运维  www.osyunwei.com  温馨提醒:系统运维原创内容©版权所有,转载请注明出处及原文链接
    TortoiseSVN是Windows平台下SVN(subversion)的一个免费开源的客户端。
    TortoiseSVN下载地址:http://tortoisesvn.net/downloads.html
    目前最新版本为:TortoiseSVN 1.8.11,区分32位和64位操作系统,并且提供中文汉化包。
    如下图所示:


    安装完成之后,桌面-右键单击,选择TortoiseSVN-版本库浏览器
    如下:

    系统运维  www.osyunwei.com  温馨提醒:系统运维原创内容©版权所有,转载请注明出处及原文链接
    URL输入:svn://192.168.21.134/


    输入用户名:osyunwei
    密码:123456
    勾选:保存认证
    确定

    可以看到svn服务器上的内容,右键单击之后,可以选择创建文件夹等操作。
    至此,Linux下源码编译安装配置SVN服务器教程完成。

  • 相关阅读:
    想用Nginx代理一切?行!
    [SuProxy]Ngnix+Lua 实现SSH2,LDAP,ORACLE,SQLSERVER等TCP/IP协议分析,劫持,代理,会话及负载
    hive分区表详细介绍
    hive 中自定义UDF函数和自定义UDTF函数
    yarn工作原理
    HDFS小文件问题
    HDFS读写流程
    利用 canvas 实现签名效果
    idea里面自带的翻译插件
    idea的set,get插件
  • 原文地址:https://www.cnblogs.com/doseoer/p/6065826.html
Copyright © 2011-2022 走看看