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

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

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

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

#解压sqllite

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

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

#配置
[[email protected] subversion-1.10.3]# cd /home/cluster/subversion-1.10.3

#注意 配置参数里没有 --with-zlib
[[email protected] 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

#编译 安装
[[email protected] subversion-1.10.3]# make && make install

3.4 添加环境变量
[[email protected] 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

[[email protected] local]# source /etc/profile

#查看版本
[[email protected] local]# svn --version
[[email protected] local]# svnserve --version

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

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

4.2配置

#修改配置svnserve.conf
[[email protected] conf]$ cd /home/cluster/svn/test && ls
authz passwd svnserve.conf
[[email protected] 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 用于创建用户
[[email protected] conf]$ vim passwd
[users]
<用户1> = <密码1> admin = admin
<用户2> = <密码2> username2 = password2
可以添加多个,此为用户名密码对。

#配置authz 修改author 用户权限控制
[[email protected] 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服务的根目录,这样用户就可以使用相对路径访问,而不用提供完整路径。
[[email protected] bin]$ svnserve -d -r /home/cluster/svn --listen-port=3690
#停止svn、杀死进程
[[email protected] 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

原文地址:https://www.cnblogs.com/cac2020/p/9783710.html

时间: 2024-09-30 12:36:48

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

Centos搭建SVN服务器subversion

1.安装  subversion yum install subversion #最终显示 Installed:   subversion.x86_64 0:1.6.11-12.el6_6                                                                                                                                                           D

Centos6.8下搭建SVN服务器

1.Centos6.8下搭建SVN服务器 Subversion是一个自由,开源的版本控制系统.Subversion将文件存放在中心版本库里.这个版本库很像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况.这样就可以籍此将数据恢复到以前的版本,并可以查看数据的更改细节.Subversion是Apache基金会下的一个项目,官网 https://subversion.apache.org/ . 2.安装 yum -y install subversion 3.创建SVN版本库 m

持续集成(二)工具搭建篇—内网邮件服务器搭建

在我们的持续构建中,项目构建中出现错误提醒,或者开发人员之间的沟通交流,进度汇报的事务,都是离不开一个通信工具,那就是邮件.在我们的项目开发中如果使用第三方的邮件平台,这肯定不是最好的选择,因为第三方的邮件需要外网的支持,但是外网又不是特别的可靠,假如外网链接出现了问题,这样就会不必要的延误我们的工期.再或者很多项目都是保密项目,在开发中只能用内网.但是不用邮件吧又不行.为了解决这个头疼的问题,我们的内网邮件服务器工具就出现了,只要用它安装在我们的服务器上,配置好账户,配置好客户端,在内网里就可

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

首先搭建SVN服务器 1,安装SVN服务端 直接用apt-get或yum安装subversion即可(当然也可以自己去官方下载安装) sudo apt-get install subversion 2,创建版本库 svnadmin create /home/myrepos    //这里的文件目录自己随便设置 3,配置svnserve 上述版本库/home/myrepos建立后在文件夹下会生成conf文件夹,进入/home/myrepos/conf下面会有下面3个文件 authz passwd 

搭建svn服务器

一.搭建svn服务器1.环境检查 [[email protected] ~]# cat /etc/redhat-release  CentOS release 6.8 (Final) [[email protected]x-node01 ~]# getconf LONG_BIT 64 [[email protected] ~]# /etc/init.d/iptables status iptables: Firewall is not running. [[email protected] ~]

Linux系统环境搭建SVN服务器环境详解

Linux系统环境搭建SVN服务器环境详解: 本篇文章主要介绍的内容是在Linux系统下如何搭建SVN服务器的,目的是为了很好的实现代码版本控制管理,具体如下所示介绍: 一.安装需要的软件包 #yum install subversion     ---安装SVN服务工具 #yum install httpdmod_dav_svn mod_perl    ---用于支持WEB方式管理SVN服务 #yum install wgetmake unzip perl*       ---必备的软件包 二

新手玩阿里云ECS搭建CentOS5.8搭建svn服务器支持https访问方式

关于svn,之前我也不了解这是个什么东西,去年(大二)的时候,在学校接触过一个项目,当时就用到了这个,也都不是我配置的,都是别人给我整好了,我就写代码呗,写了就提交上去,当时也没有考虑过什么事svn,现在在公司实习了,时间很充裕,就想玩玩svn,也顺便把我准备做的毕业设计都传上去,阿里云给了我机会,新手注册,ECS免费半年,多好的事,虽然没有外网带宽,但是买1M的外网带宽也就20多块钱一个月吧!我还是可以接受的,好了不废话了,阿里云在这里就不废话了,反正感觉很高大上,在这里就简单聊聊svn吧!也

linux下搭建SVN服务器

最近搞了一台云服务器,尝试部署一些服务器相关的东西,作为开发用服务器,首先考虑搭建的是SVN服务器.记录一下搭建的过程,方便以后查看. 一.安装svn软件,有些云服务器会有安装svn服务器,有些没有. # yum install -y subversion                        //在线安装svn # svnserve --version                                  //检查svn版本 二.创建svn版本库 1.创建一个项目的版本目录

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

Jenkins Gitlab持续集成打包平台搭建 SkySeraph July. 18th 2016 Email:[email protected] 更多精彩请直接访问SkySeraph个人站点:www.skyseraph.com 1. 相关概念 Jenkins Jenkins,一个用Java编写的开源的持续集成工具,提供了软件开发的持续集成服务,可监控并触发持续重复的工作,具有开源,支持多平台和插件扩展,安装简单,界面化管理等特点.更多介绍参考维基介绍. Gitlab GitLab是一个利用R