zoukankan      html  css  js  c++  java
  • DevOps之二:搭建SVN服务器(subversion)

    安装环境
      Red Hat Enterprise Linux Server release 7.3 (Maipo)
      jdk1.7.0_80
      subversion-1.10.3.tar.gz
      apr-1.6.5.tar.gz、apr-util-1.6.1.tar.gz、apr-iconv-1.2.2.tar.gz
      sqlite-autoconf-3250200.tar.gz

    Subversion(简称SVN)是一个Apache开源的版本控制系统。
    svn服务器有2种运行方式:独立服务器和借助apache。2种方式各有利弊,本篇文章讲述使用独立服务器来创建,后期借助Apache实现http访问。

    file:///  直接版本库访问(本地磁盘)。
    http://  通过配置Subversion的Apache服务器的WebDAV协议。
    https://  与http://相似,但是包括SSL加密。
    svn://  独立服务器访问方式,通过svnserve服务自定义的协议。如svn://ip:3690/ 
    svn+ssh://  与svn://相似,但通过SSH封装


    1、yum安装: yum install subversion

    2、下载离线安装包:
    SVN安装包:subversion-1.10.3.tar.gz,下载地址:http://subversion.apache.org/download.cgi
    数据库依赖包:sqlite-autoconf-3250200.tar.gz,下载地址:https://www.sqlite.org/download.html
    apr依赖包:apr-1.6.5.tar.gz、apr-util-1.6.1.tar.gz、apr-iconv-1.2.2.tar.gz,下载地址:http://apr.apache.org/download.cgi
    zlib依赖包:zlib-1.2.11.tar.xz,下载地址:http://linux.softpedia.com/get/Programming/Libraries/zlib-159.shtml

    3、解压 安装
    安装之前检查是否已经安装
    rpm -qa|grep svn
    rpm -qa|grep apr
    rpm -qa|grep zlib

    3.1 首先安装 apr
    参考:DevOps之二:搭建SVN服务器--Apache HTTP Server安装

    3.2 安装zlib 注意:subversion1.10 可能不再依赖zlib

    [cluster@PCS102 soft]$ xz -d zlib-1.2.11.tar.xz
    [cluster@PCS102 soft]$ tar -xvf zlib-1.2.11.tar -C /home/cluster
    [cluster@PCS102 zlib-1.2.11]$ cd /home/cluster/zlib-1.2.11
    [cluster@PCS102 zlib-1.2.11]$ ./configure --prefix=/home/cluster/zlib-1.2.11
    [cluster@PCS102 zlib-1.2.11]$ make
    [cluster@PCS102 zlib-1.2.11]$ make install

    3.3 安装SVN
    #解压svn
    [cluster@PCS102 soft]$ tar -zxvf subversion-1.10.3.tar.gz -C /home/cluster


    #解压sqllite

    [cluster@PCS102 ~]$ tar -zxvf sqlite-autoconf-3250200.tar.gz -C /home/cluster


    #迁移sqllite到svn源文件目录下 并改名sqlite-amalgamation
    [cluster@PCS102 ~]$ mv /home/cluster/sqlite-autoconf-3250200 /home/cluster/subversion-1.10.3/sqlite-amalgamation

    #配置
    [root@PCS102 subversion-1.10.3]# cd /home/cluster/subversion-1.10.3

    #注意 配置参数里没有 --with-zlib
    [root@PCS102 subversion-1.10.3]# ./configure --prefix=/home/cluster/subversion-1.10.3 --with-apr=/home/cluster/apr/apr-1.6.5 --with-apr-util=/home/cluster/apr/apr-util-1.6.1 --with-lz4=internal --with-utf8proc=internal

    错误1:configure: error: Subversion requires LZ4 >= r129, or use --with-lz4=internal
    解决:./configure命令添加 --with-lz4=internal选项

    错误2:configure: error: Subversion requires UTF8PROC
    解决:./configure命令添加 --with-utf8proc=internal

    #编译 安装
    [root@PCS102 subversion-1.10.3]# make && make install

    3.4 添加环境变量
    [root@PCS102 local]# vim /etc/profile

    export JAVA_HOME=/usr/local/jdk1.7.0_80
    export SVN_HOME=/home/cluster/subversion-1.10.3
    export PATH=$JAVA_HOME/bin:$SVN_HOME/bin:$PATH

    [root@PCS102 local]# source /etc/profile

    #查看版本
    [root@PCS102 local]# svn --version
    [root@PCS102 local]# svnserve --version

    4、创建代码版本库
    4.1创建svn目录作为版本主目录 可以创建多个

    [cluster@PCS102 bin]$ mkdir -p /home/cluster/svn
    #创建test代码目录
    [cluster@PCS102 bin]$ cd /home/cluster/svn && svnadmin create test

    4.2配置

    #修改配置svnserve.conf
    [cluster@PCS102 conf]$ cd /home/cluster/svn/test && ls
    authz passwd svnserve.conf
    [cluster@PCS102 conf]$ vim svnserve.conf
    [general]
    anon-access = none # 使非授权用户无法访问
    auth-access = write # 使授权用户有写权限
    password-db = /home/cluster/svn/test/conf/passwd  # 指明密码文件路径
    authz-db = /home/cluster/svn/test/conf/authz    # 访问控制文件
    realm = /home/cluster/svn/test   # 认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字。
    
    #配置passwd 用于创建用户
    [cluster@PCS102 conf]$ vim passwd
    [users] 
    <用户1> = <密码1> admin = admin
    <用户2> = <密码2> username2 = password2
    可以添加多个,此为用户名密码对。

    #配置authz 修改author 用户权限控制
    [cluster@PCS102 conf]$ vim authz
    指令简介:此配置文件采用“基于路径的授权”策略,中括号里指定路径,以下列出对各用户的授权。
    包括只读r,读写rw。
    没有列出的用户,则不允许访问。
    还可以对用户分组,具体请参考svn手册,以下是简单例子:

    用户组格式:
    [groups]
    <用户组名> = <用户1>,<用户2>
    其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。

    版本库目录格式:
    [<版本库>:/项目/目录]
    @<用户组名> = <权限>
    <用户名> = <权限>

    其中,方框号内部分可以有多种写法:
    /,表示根目录及以下。根目录是svnserve启动时指定的,我们指定/home/cluster/svn。这样,/就是表示对全部版本库设置权限。
    repos1:/,表示对版本库1设置权限
    repos2:/abc, ,表示对版本库2中的abc项目设置权限
    repos2:/abc/aaa, ,表示对版本库2中的abc项目的aaa目录设置权限

    权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。权限可以是w、r、wr和空,空表示没有任何权限。
    以下是简单例子
    [/]
    * = rw

    4.3启动svn服务

    #启动命令: svnserve -d -r 版本库路径 --listen 端口号
    #-d 表示守护服务,在后台执行,--listen 3690(默认端口,也可以自行指定),-r 指定svn服务的根目录,这样用户就可以使用相对路径访问,而不用提供完整路径。
    [cluster@PCS102 bin]$ svnserve -d -r /home/cluster/svn --listen-port=3690
    #停止svn、杀死进程
    [cluster@PCS102 bin]$ pkill svnserve

    4.4 开发人员机器安装 windows svn客户端TortoiseSVN
    下载:https://tortoisesvn.net/downloads.html
    Subversion和tortoiseSvn版本最好一样,至少客户端版本要比服务端高;
    如果需要安装TortoiseSVN的中文语言包(language packs下面下载),需要下载和客户端版本相同的。

    #访问svn://134.32.123.102/test 如下图

     

    参考:
    https://liangzl.com/get-article-detail-18849.html
    https://www.jianshu.com/p/7cfdc0086b5a
    https://www.cnblogs.com/wizzhangquan/p/4564089.html
    https://blog.csdn.net/yieryi_/article/details/74361650
    https://blog.csdn.net/roy_70/article/details/52166331

  • 相关阅读:
    实验一 软件开发文档与工具的安装与使用
    ATM管理系统
    举例分析流程图与活动图的区别与联系
    四则运算
    机器学习 实验三
    机器学习 实验四
    机器视觉实验二
    实验三
    实验二
    实验一
  • 原文地址:https://www.cnblogs.com/cac2020/p/9783710.html
Copyright © 2011-2022 走看看