安装环境
  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
参考:持续集成之二:搭建SVN服务器--Apache HTTP Server安装

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

[cluster@PCS102 soft]$ xz -d zlib-1.2..tar.xz
[cluster@PCS102 soft]$ tar -xvf zlib-1.2..tar -C /home/cluster
[cluster@PCS102 zlib-1.2.]$ cd /home/cluster/zlib-1.2.
[cluster@PCS102 zlib-1.2.]$ ./configure --prefix=/home/cluster/zlib-1.2.
[cluster@PCS102 zlib-1.2.]$ make
[cluster@PCS102 zlib-1.2.]$ 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..0_80
export SVN_HOME=/home/cluster/subversion-1.10.
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 (默认端口,也可以自行指定),-r 指定svn服务的根目录,这样用户就可以使用相对路径访问,而不用提供完整路径。
[cluster@PCS102 bin]$ svnserve -d -r /home/cluster/svn --listen-port=
#停止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

持续集成之二:搭建SVN服务器(subversion)的更多相关文章

  1. Centos6.8下搭建SVN服务器

    1.Centos6.8下搭建SVN服务器 Subversion是一个自由,开源的版本控制系统.Subversion将文件存放在中心版本库里.这个版本库很像一个普通的文件服务器,不同的是,它可以记录每一 ...

  2. Dubbo入门到精通学习笔记(三):持续集成管理平台之SVN版本管理系统的安装和使用

    文章目录 持续集成管理平台介绍 持续集成介绍 持续集成管理平台的组成 持续集成实践介绍 即将学习 SVN版本管理系统的安装 安装 Subversion + Apache 安装 jsvnadmin 简单 ...

  3. 【iOS】Jenkins Gitlab持续集成打包平台搭建

    Jenkins Gitlab持续集成打包平台搭建 SkySeraph July. 18th 2016 Email:skyseraph00@163.com 更多精彩请直接访问SkySeraph个人站点: ...

  4. Linux下搭建SVN服务器及自动更新项目文件到web目录(www)的方法

    首先搭建SVN服务器 1,安装SVN服务端 直接用apt-get或yum安装subversion即可(当然也可以自己去官方下载安装) sudo apt-get install subversion   ...

  5. 如何在win上搭建SVN服务器

    本博文转自:http://www.cnblogs.com/armyfai/p/3985660.html SVN简介: 为什么要使用SVN? 程序员在编写程序的过程中,每个程序员都会生成很多不同的版本, ...

  6. Windows和Linux环境下搭建SVN服务器

    --------------------------Windows下搭建SVN服务器----------------------------- 一.安装SVN服务端 软件包Setup-Subversi ...

  7. window环境下搭建SVN服务器

    <span style="font-family: Arial; rgb(255, 255, 255);">第一步:准备工具:</span> 1.SVN服务 ...

  8. [源码管理] Windows下搭建SVN服务器

    前文所述SVN客户端使用的时候,用的SVN服务器通常为外部,例如Google Code的服务器,不过,做为一个程序开发人员,就算自己一个人写程序,也应该有一个SVN版本控制系统,以便对开发代码进行有效 ...

  9. Ubuntu环境搭建svn服务器

    记录一次使用Ubuntu环境搭建svn服务器的详细步骤 一.查看是否已经安装svn 命令:svn如果显示以下信息,说明已安装   二.卸载已安装的svn 命令:sudo apt-get remove ...

随机推荐

  1. SQL Server2008 R2 安装失败后的解决办法

    当你第一次安装SQL Server2005,SQL Server2008,SQL Server2012失败后,第二次重新安装一般还是容易安装失败,原因就是你没有完全卸载,还存留残留文件和注册表. 我安 ...

  2. linux下jmeter持续集成Jenkins部署时问题解决

    之前成linux下安装了Jenkins,并做了一些简单的工作,这次正好将jmeter也集成进去,在实际操作时发现好多坑,写下做记录 怎么安装这里就不介绍了,网上很多资料,这里只记录问题,以供大家参数 ...

  3. oracle如何删除表空间

    drop tablespace 表空间名 including contents and datafiles cascade constraint; ............. 以system用户登录, ...

  4. css的border的solid

    http://www.w3school.com.cn/cssref/pr_border-style.asphttp://www.w3school.com.cn/tiy/t.asp?f=csse_bor ...

  5. like to do vs like doing

    I like to eat apple 表示我喜欢吃苹果这种食物. I like eating apple 表示我喜欢吃苹果这种食物 或者 表示我喜欢吃苹果这个过程. like to do,表达的是倾 ...

  6. Centos6.5 (或Linux) 安装Elasticsearch

    一.可以在网上下载对饮的版本:https://github.com/elastic/elasticsearch,本次安装的是5.5.3. 首先保证虚拟机上安装了jdk,jdk的版本只是是1.7或以上 ...

  7. eclipse+gnuarm+使用报错

    Description Resource Path Location TypeProgram "echo" not found in PATH stm32 Project Prop ...

  8. POJ - 1191 棋盘分割 记忆递归 搜索dp+数学

    http://poj.org/problem?id=1191 题意:中文题. 题解: 1.关于切割的模拟,用递归 有这样的递归方程(dp方程):f(n,棋盘)=f(n-1,待割的棋盘)+f(1,割下的 ...

  9. java NIO (二) 一个故事讲清楚NIO

    假设某银行只有10个职员.该银行的业务流程分为以下4个步骤: 1) 顾客填申请表(5分钟): 2) 职员审核(1分钟): 3) 职员叫保安去金库取钱(3分钟): 4) 职员打印票据,并将钱和票据返回给 ...

  10. Spring-事务管理(Transaction)

    1.事务介绍 事务(Transaction):访问并能更新数据库中数据项的一个程序执行单元. 事务是一系列的动作,它们综合在一起才是一个完整的工作单元,这些动作必须要么全部完成,要么什么都不做,如果有 ...