zoukankan      html  css  js  c++  java
  • 源码安装SVN

    环境介绍

    1 [root@bogon ~]# ip a |grep inet |grep brd |awk -F "[ /]+" '{print $3}'
    2 192.168.9.32
    3 [root@bogon ~]# cat /etc/redhat-release
    4 CentOS release 6.5 (Final)
    5 [root@bogon ~]# uname -r
    6 2.6.32-431.el6.x86_64
    7 [root@bogon ~]# uname -m
    8 x86_64

    源码包下载地址

    # apr和apr-util源码包下载地址;
        * http://archive.apache.org/dist/apr
    # scons源码包下载地址;访问后根据需求下载相应的版本.
        * https://sourceforge.net/projects/scons/files/scons/
        
    # serf源码包下载地址;
        * http://fossies.org/linux/www/serf-1.3.8.tar.gz
    # svn源码包下载地址;选择相应的版本号下载.
        * http://www.apache.org/dist/subversion
    # sqlite-amalgamation包的下载
        * http://www.sqlite.org/download.html

    安装相关依赖包

    yum install unzip expat-devel zlib-devel

    上传所需源码包

    [root@bogon soft]# ls
    apr-1.6.2.tar.gz       scons-2.5.1.tar.gz               subversion-1.8.19.tar.gz
    apr-util-1.6.0.tar.gz  serf-1.3.9.tar.gz
    openssl-1.0.1g.tar.gz  sqlite-amalgamation-3210000.zip

    安装相关源码包(apr--->apr-util--->scons--->openssl--->serf--->svn)

    #  -*- apr源码安装 -*-
    [root@bogon soft]# tar xf apr-1.6.2.tar.gz -C /usr/src/
    [root@bogon soft]# cd /usr/src/apr-1.6.2/
    [root@bogon apr-1.6.2]# ./configure --prefix=/usr/local/apr && make && make install
    #  -*- apr-util源码安装 -*-
    [root@bogon soft]# tar xf apr-util-1.6.0.tar.gz -C /usr/src/
    [root@bogon soft]# cd /usr/src/apr-util-1.6.0/
    [root@bogon soft]# ./configure --with-apr=/usr/local/apr/bin/apr-1-config && make && make install
    #********安装错误******
        * 报错提示: "xml/apr_xml.c:35:19: 错误:expat.h:没有那个文件或目录
    xml/apr_xml.c:66: 错误:expected specifier-qualifier-list before ‘XML_Parser’"
        
        ** 解决办法: 提前yum安装expat-devel
    #  -*- scons源码安装 -*-
    [root@bogon soft]# tar xf scons-2.5.1.tar.gz -C /usr/src/
    [root@bogon soft]# cd /usr/src/scons-2.5.1/
    [root@bogon scons-2.5.1]# python setup.py install
    #  -*- openssl源码安装 -*-
    [root@bogon soft]# tar xf openssl-1.0.1g.tar.gz -C /usr/src/
    [root@bogon soft]# cd /usr/src/openssl-1.0.1g/
    [root@bogon openssl-1.0.1g]# CFLAGS=-fPIC ./config --prefix=/usr/local/openssl enable-shared && make && make install
    [root@bogon openssl-1.0.1g]# vim /etc/profile
        export PATH=$PATH:/usr/local/openssl/bin        # 最后添加系统环境变量
    [root@bogon openssl-1.0.1g]# source /etc/profile    # 声明全局变量
    [root@bogon openssl-1.0.1g]# ln -s /usr/local/openssl/include/openssl /usr/include/openssl    # 添加系统软连接
    #  -*- serf源码安装 -*-
    [root@bogon soft]# tar xf serf-1.3.9.tar.gz -C /usr/src/
    [root@bogon soft]# cd /usr/src/serf-1.3.9/
    [root@bogon serf-1.3.9]# scons PREFIX=/usr/local/serf APR=/usr/local/apr/bin/apr-1-config APU=/usr/local/apr/bin/apr-1-config OPENSSL=/usr/local/openssl/
        * 报错提示: buckets/deflate_buckets.c:23:18: error: zlib.h: No such file or directory buckets/deflate_buckets.c:
        ** 解决办法: 提前yum安装zlib-devel
    [root@bogon serf-1.3.9]# scons install
    [root@bogon serf-1.3.9]# cd /usr/local/serf/lib/
    [root@bogon lib]# cp libserf-1.so* /usr/local/lib   # 拷贝文件到系统目录
    #  -*- svn源码安装 -*-
    [root@bogon soft]# tar xf subversion-1.8.19.tar.gz -C /usr/src/
    [root@bogon soft]# unzip sqlite-amalgamation-3210000.zip -d /usr/src/subversion-1.8.19/
    [root@bogon soft]# cd /usr/src/subversion-1.8.19/
    [root@bogon subversion-1.8.19]# mv sqlite-amalgamation-3210000/ sqlite-amalgamation
    [root@bogon subversion-1.8.19]# ./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
    [root@bogon subversion-1.8.19]# make && make install
    [root@bogon subversion-1.8.19]# vim /etc/profile
        export PATH=$PATH:/usr/local/openssl/bin:/usr/local/svn/bin
    [root@bogon subversion-1.8.19]# source /etc/profile
    [root@bogon subversion-1.8.19]# vim /etc/ld.so.conf.d/libexpat.conf     # 编辑加入libexpat.so.1目录
        /usr/local/lib
    [root@bogon subversion-1.8.19]# ldconfig -v     # 使配置生效

    测试是否安装成功

    [root@bogon ~]# svn help
    [root@bogon ~]# svnserve --version
        svnserve, version 1.8.19 (r1800620)
           compiled Dec 20 2017, 10:07:39 on x86_64-unknown-linux-gnu
        Copyright (C) 2017 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.
    [root@bogon ~]# svn --version
        svn, version 1.8.19 (r1800620)
           compiled Dec 20 2017, 10:07:39 on x86_64-unknown-linux-gnu
        Copyright (C) 2017 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 access (RA) modules are available:
        * ra_svn : Module for accessing a repository using the svn network protocol.
          - handles 'svn' scheme
        * ra_local : Module for accessing a repository on local disk.
          - handles 'file' scheme
        * ra_serf : Module for accessing a repository via WebDAV protocol using serf.
          - using serf 1.3.9
          - handles 'http' scheme
          - handles 'https' scheme

     配置SVN

    # 创建svn代码库
    [root@bogon ~]# mkdir -pv /home/svn/    # 创建目录
    mkdir: 已创建目录 "/home/svn/"
    [root@bogon ~]# svnadmin create /home/svn/test  # 创建svn代码库,目录可以和上面建立的相同(/home/svn)
    [root@bogon ~]# ls /home/svn/test/              # 创建代码库后自动生成以下文件及目录
    conf  db  format  hooks  locks  README.txt
        * conf      # 放置配置文件的目录;
        * db        # 版本数据存储目录;
        * formate   # 存储一个整数的文件,此整数代表库层次结构版本;
        * hooks     # 存放版本库勾子目录;
        * locks     # 存储库锁目录,用来跟踪库的访问者;
    # 配置svn代码库
    [root@bogon ~]# cd /home/svn/test/conf/
    [root@bogon conf]# vim svnserve.conf    # 配置全局文件;
        [general]
        anon-access=none        # 禁止匿名访问,设置为none;默认为read,参数: readwrite
    one;
        auth-access=write       # 授权用户写权限;
        password-db=passwd      # 用户账号密码文件路径,可以写绝对路径;
        authz-db=authz          # 访问控制权限文件路径,可以写绝对路径;
        realm=svn               # 每个SVN的认证名,会在认证提示里显示,建议写项目名称;
    [root@bogon conf]# vim passwd   # 配置用户密码
        [users]
        osyunwei=123456
        test=123456
        test2=123456
    [root@bogon conf]# vim authz    # 配置权限控制文件,设置用户可以访问的目录
        [groups]
        admin=osyunwei
        users=test,test2
        [/]                 # 表示根目录下的所有资源;
        @admin = rw
        * = r
        [repo:/test]

     启动SVN

    [root@bogon ~]# svnserve -d -r /home/svn/test/ [ --listen-port 6060 ]    # 启动svn;默认端口为 3690;可通过后面指定启动端口;

    设置SVN服务开机启动

    [root@bogon ~]# vim /etc/init.d/svn
        #!/bin/bash
        # chkconfig: 235 85 85
        # processname: svn
        #SVN_PORT=6060
        SVN_HOME=/home/svn/test
        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
            echo "Successfully..."
        ;;
        stop)
            echo "Stopping svnserve..."
            killall svnserve
            echo "Successfully..."
        ;;
        restart)
            $0 stop
            $0 start
        ;;
        *)
            echo "Usage: {start|stop|restart}"
            exit 1
        ;;
        esac
    [root@bogon ~]# chmod +x /etc/init.d/svn    # 添加执行权限;
    [root@bogon ~]# chkconfig svn on            # 设置开机自启;
    # 测试svn
    [root@bogon ~]# svn checkout svn://192.168.9.32 --username=osyunwei --password=123456   # 将文件下载到本地;
    [root@bogon ~]# svn update --username=osyunwei --password=123456    # 更新上次修改后的版本库;

    客户端连接SVN服务器

        连接地址:   svn://192.168.9.32

    作者:TZHR —— 世间一散人

    出处:https://www.cnblogs.com/haorong/

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明

  • 相关阅读:
    171 01 Android 零基础入门 03 Java常用工具类02 Java包装类 01 包装类简介 01 Java包装类内容简介
    170 01 Android 零基础入门 03 Java常用工具类01 Java异常 08 Java异常总结 01 异常总结
    169 01 Android 零基础入门 03 Java常用工具类01 Java异常 07 异常链 01 异常链简介
    168 01 Android 零基础入门 03 Java常用工具类01 Java异常 06 自定义异常 01 自定义异常类
    167 01 Android 零基础入门 03 Java常用工具类01 Java异常 05 使用throw和throws实现异常处理 02 使用throw抛出异常对象
    166 01 Android 零基础入门 03 Java常用工具类01 Java异常 05 使用throw和throws实现异常处理 01 使用throws声明异常类型
    165 01 Android 零基础入门 03 Java常用工具类01 Java异常 04 使用try…catch…finally实现异常处理 05 return关键字在异常处理中的使用
    DevExpress WPF v20.2版本亮点放送:全新升级的PDF Viewer
    界面控件DevExpress使用教程:Dashboard – 自定义导出
    DevExpress WinForms帮助文档:表单控件
  • 原文地址:https://www.cnblogs.com/haorong/p/8082235.html
Copyright © 2011-2022 走看看