源码安装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,参数: read\write\none;
    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

 

posted @ 2017-12-21 19:56  荣荣很乖  阅读(2066)  评论(0编辑  收藏  举报