官网下载: http://subversion.apache.org/packages.html

SVN客户端:TortoiseSVN :https://tortoisesvn.net/downloads.html

 

查看系统下有没有安装过老版本的svn:rpm -qa subversion,如果没安装过则什么都不显示

如果有老版本先运行一下yum -y  remove subversion,删除老版本。

第一步:通过yum命令安装svnserve,命令:yum -y install subversion

此命令会全自动安装svn服务器相关服务和依赖,安装完成会自动停止命令运行

若需查看svn安装位置,可以用命令:rpm -ql subversion

第二步:创建版本库目录(此仅为目录,为后面创建版本库提供存放位置,subversion默认是把/var/svn作为数据根目录的,开机启动默认也是从这里):mkdir /var/svn/svnrepos

第三步:创建svn版本库

在第二步建立的路径基础上,创建版本库:svnadmin create /var/svn/test(test为目录(项目或版本库)名称,后面checkout项目时会用到。)

创建成功后,进入test目录下,可以看见如下文件信息:cd /var/svn/test

conf:是这个仓库配置文件(仓库用户访问账户,权限)

format:是一个文本文件,里边只放了一个整数,表示当前文件库配置的版本号

hooks:放置hook脚步文件的目录

locks:用来放置subversion的db锁文件和db_logs锁文件的目录,用来追踪存取文件库的客户端

第四步:配置修改

进入conf,conf目录下,一共存放三份重要的配置文件,如下:

authz:负责账号权限的管理,控制账号是否读写权限

passwd:负责账号和密码的用户名单管理

svnserve.conf:svn服务器配置文件

修改svnserve.conf:vim svnserve.conf

原始文件内容,都被注释掉的,我们只需要去掉指定内容前注释即可,如下:

[general]

anon-access = none                #控制非鉴权用户访问版本库的权限

auth-access = write                 #控制鉴权用户访问版本库的权限

password-db = passwd           #指定用户名口令文件名,即访问时要输用户名和密码

realm = test                    #指定版本库的认证域,即在登录时提示的认证域名称,改成自己的版本库

修改authz文件信息:vim authz

在文件内容的末尾,添加如下:

rw表示赋予此账号可读写的权限,r为读,w为写,注意[/]中的斜杠,这里如果斜杠反了,authz-db = authz 一直会提示“认证失败”

第一种方式:单个添加:

# 按账号分权限

[test/]

admin = rw

test = r

第二种方式(后面采用此方式配置):用户分组,再设权限

[groups]
# 按用户组分权限
admin = admin,admin1 # admin为用户组,等号之后的为用户
test = test1, test2 # test为用户组,等号之后的为用户

[/] # 表示svn仓库目录(/var/svn/test),test: 对应前面配置的realm = test
@admin = rw # 表示admin组对仓库(/var/svn/test)目录有读写权限,r为读,w为写
@test = r # 表示test组的用户对对仓库(/var/svn/test)目录只有读的权限

[/test1] # 表示test1目录(/var/svn/test/test1)
@test = rw # 表示test组对test1目录有读写权限
* =

备注:版本库的目录格式如下:

[<版本库>:/项目/目录]

@<用户组名> = 权限

<用户名> = 权限

其中[]內容有許多写法:

[/],表示根目录及其一下的路径,根目录是svnserver启动时指定好的,上述实例中我们指定为:/svn/svndata([/]=/svn/svndata).[/]就是表示对全部版本设置的权限

[test:/],表示对版本库test设置权限;

[test:/svnadmin],表示对版本库test中的svnadmin项目设置权限;

[test:/svnadmin/second],表示对版本库test中的svnadmin项目的目录设置权限;

权限的主体可以是用户组,用户或者*,用户组在前面要以@开头,*表示全部用户

权限分为:r ,w, rw和null ,null空表示没有任何权限。

auhtz配置文件中的每个参数,开头不能有空格,对于组要以@开头,用户不需要。

 

修改passwd文件信息vim passwd

直接将账号和密码信息追加到文件中即可,格式为:账号 = 密码,这里上面如果是设的分组,仍需设置每个角色对应的密码

例如:admin = 123@qwe

到此,配置已经全部完成,账号信息已经添加成功

更改svnserver.conf时需要重启SVN服务才生效,更改authz,passwd文件时则不需要重启服务

第五步:防火墙开启

多数情况下服务器安装完成,配置完成后,无法连接svn服务器,均是防火墙问题

配置防火墙端口

首先要明确CentOS7的默认防火墙为firewallD。subversion的默认端口为3690,如果没有打开会报错:

1: sudo firewall-cmd --permanent --add-service=telnet
2: sudo firewall-cmd --permanent --add-port=3690/tcp
3: sudo firewall-cmd --reload

centOS 7 防火墙开启、关闭与查看状态:
systemctl start firewalld
systemctl stop firewalld
systemctl status firewalld

出现以下情况则代表防火墙没启动用systemctl status firewalld查看防火墙状态

启动防火墙

配置

六:启动svn服务器

# -d : 守护进程  -r : svn数据根目录

svnserve -dr /var/svn            #用root权限启动

查看SVN服务:

ps aux|grep svnserve               #默认端口为:3690

设置开机启动

在centos7, 设置开机启动:

sudo systemctl enable svnserve.service  #注意:根目录必须是/var/svn 这样才能设置成功!!

设置开机启动后就可以按下面的方式开启或停止服务了

systemctl start svnserve.service

systemctl stop svnserve.service

7:检出项目
进入windows 检出项目 地址栏输入 svn://项目ip:3690/test
项目ip可以通过 ip addr 或者 ifconfig 查看 inet,test 为当初建立的SVN版本库 可以从上文寻找

注释掉:authz-db = authz

再次检出(admin,有读写权限)

在检出目录下新建个文档提交,成功

清除SVN记录的账号信息:SVN设置_已保存数据_清除

如果报这样的错:svn: E204900: Can't open file '/var/svn/wangwa/format': Permission denied的错误。那就是与SELinux有关系,这里有两种处理方式:

1、把SELinux关闭

  临时关闭:sudo setenforce 0

  永久关闭:sudo vim /etc/sysconfig/selinux

  修改:SELINUX = disable               #值修改为disable.

2、svn与SElinux的设置(未测试)

  [root@localhost root]# chcon -R --reference=/var/svn /var/svn

  [root@localhost root]# restorecon -v -R /var/svn

 

异常及解决:

如果提示:svnserve: Root path '/var/svn' does not exist or is not a directory.目录不存在

修改etc/sysconfig/svnserve配置文件将OPTIONS="-r /var/svn"改成自己的svndata目录 如"-r/svndata/test"

如果提示:svnserve: E000098: Can't bind server socket: Address already in use 端口被占用

先用命令 >netstat -ntlp列出所有端口占用情况,找到端口3690的PID,结束掉些进程: kill PID号;再启动

linux下搭建SVN的更多相关文章

  1. linux下搭建svn本地服务器

    在linux下搭建svn本地服务器可以很好的管理自己的代码,具体过程如下: # mkdir svn_local # cd svn_local  # svnadmin create led_diplay ...

  2. 如何在linux下搭建svn服务

    • 安装svn 使用命令 yum install subversion 如果提示上述错误,请以管理员身份运行 使用命令su root 再执行 yum install subversion 2,查看sv ...

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

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

  4. linux 下搭建svn

    Update 程序设计中的“后悔药”——SVN 一.历史起源 1.版本控制软件   答:主要是对源代码版本进行控制与管理 2.版本控制软件起源 CVS:最早期的开源的版本控制软件(开源奇葩) VSS: ...

  5. 在Linux下搭建SVN服务器

    svn不仅仅可以用于程序开发,还可以做很多事情,例如备份文档. CentOS下:安装 这样同一台服务器便可以运行多个svnserver了 检查端口 注:如果修改了svn配置,需要重启svn服务 -j ...

  6. Linux下搭建svn服务端

    安装 使用yum安装非常简单: yum -y install subversion (压缩包安装比这麻烦的多) Tortoise本是window下客户端工具,但也可以建仓库,作为服务端.Linux只有 ...

  7. linux下搭建SVN服务器完全手册

    原文:http://www.cnblogs.com/wrmfw/archive/2011/09/08/2170465.html 系统环境        RHEL5.4最小化安装(关iptables,关 ...

  8. linux下搭建svn并同步更新至web目录

    安装svn 使用yum安装 yum install subversion -y 安装成功后查看版本库 svnserve  --version 生成目录 cd /var mkdir svn cd svn ...

  9. linux下搭建SVN服务器完全手册【转】

    转自:http://blog.csdn.net/bullbat/article/details/9115559 系统环境        RHEL5.4最小化安装(关iptables,关selinux) ...

  10. linux下搭建svn代码库

    1.安装svn客户端 2.创建svn代码库 1.安装svn客户端 1.1.使用命令安装 1)CentOS $ yum install subversion 2)ubuntu sudo apt-get ...

随机推荐

  1. ubuntu 简单安装配置gitlab

    安装 gitlab-ce 社区版 依赖 sudo apt-get install curl openssh-server ca-certificates postfix 添加gitlab包服务并安装 ...

  2. Css - 三大特性

    css - 三大特性 1.层叠性 如果通过两个相同选择器设置了同一个元素的某个相同的css属性,按照css相同属性的出现顺序,后面的样式会覆盖前面的样式 2.继承性 祖先元素的关于文本的样式会遗传给后 ...

  3. Django中的csrf基础了解

    简介 django为用户实现防止跨站请求伪造的功能,通过中间件 django.middleware.csrf.CsrfViewMiddleware 来完成.而对于django中设置防跨站请求伪造功能有 ...

  4. SpringBoot整合全局异常处理&SpringBoot整合定时任务Task&SpringBoot整合异步任务

    ============整合全局异常=========== 1.整合web访问的全局异常 如果不做全局异常处理直接访问如果报错,页面会报错500错误,对于界面的显示非常不友好,因此需要做处理. 全局异 ...

  5. C#如何操作XML文件

    ⒈XML? XML是一种可扩展的标记语言 具有以下特点 1.严格区分大小写 2.标签成对出现 3.有且只有一个根节点 ⒉XML的创建 <?xml version="1.0" ...

  6. 必须要学会webpack打包,并到特别精通的程度

    必须要学会webpack打包,并到特别精通的程度

  7. 在 sql server 中,查询 数据库的大小 和 数据库中各表的大小

    其实本来只想找一个方法能查询一下 数据库 的大小,没想到这个方法还能查询数据库中 各个数据表 的大小,嗯,挺好玩的,记录一下. MSDN资料:https://msdn.microsoft.com/zh ...

  8. LwIP Application Developers Manual10---LwIP IPv4/IPv6 stacks

    1.前言 lwIP正在加入IPv6,一个实验性的版本可以通过git下载,该版本实现了一个IPv4/IPv6的双协议栈.通过在lwipopts.h定义LWIP_IPV6可以使能IPv6 2.已实现的IP ...

  9. linux添加swap分区【转】

    概述 添加交换分区主要是因为安装oracle时碰到交换分区太小时无法安装的情况,这时候就需要添加交换分区了. 操作简介 增加swap分区方法: 1.新建磁盘分区作为swap分区 2.用文件作为swap ...

  10. linux shell 之尝试编写 企业级 启动脚本

    企业Shell面试题10:开发企业级MySQL启动脚本 说明: MySQL启动命令为: 1 /bin/sh mysqld_safe --pid-file=$mysqld_pid_file_path 2 ...