目录

  • 前言
  • 1、安装及卸载
    • 2.1 查看安装情况
    • 2.2 直接安装(不推荐)
    • 2.3 最新版本安装(推荐)
    • 2.4 卸载
  • 2、创建svn工作目录
  • 3、创建svn项目仓库
  • 4、为svn仓库设置用户权限
    • 4.1 新增用户
    • 4.2 配置用户权限
  • 5、配置svnserve.conf
  • 6、启动
  • 7、新增仓库及用户
  • 8、配置开机自启
  • 9、配置http服务(非必须)
    • 9.1 查看http-svn安装情况
    • 9.2 安装
    • 9.3 修改subversion.conf配置
    • 9.4 创建第一个用户(新增后需要设置权限)
    • 9.5 新增、删除用户(新增后需要设置权限)
    • 9.6 设置用户权限
    • 9.7 配置httpd权限
    • 9.9 修改http端口
    • 9.9 测试

前言

SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。

1、安装及卸载

2.1 查看安装情况

rpm -qa subversion

2.2 直接安装(不推荐)

安装方式有两种,一种是yum直接安装,另外一个是通过修改yum安装的方式进行安装;

如果直接使用yum,那么安装的默认版本为1.7.14,如下:

2.3 最新版本安装(推荐)

如果已经按照过了老版本,一定要进行卸载操作;

查看版本号:https://opensource.wandisco.com/centos/

1、配置WandiscoSVN

vim /etc/yum.repos.d/wandisco-svn.repo

内容如下:

[WandiscoSVN]
name=Wandisco SVN Repo
baseurl=http://opensource.wandisco.com/centos/$releasever/svn-1.14/RPMS/$basearch/
enabled=1
gpgcheck=0

其中svn-1.14表示安装的svn版本号,通过这样的方式就可以覆盖原有的yum安装版本,直接安装最新的1.4.1版本

2、安装:

yum -y install subversion

2.4 卸载

如果服务器已经安装过了svn,通过以下命令进行卸载:

yum remove subversion

2、创建svn工作目录

mkdir -p /opt/svn/repos/

3、创建svn项目仓库

比如:新增了一个项目名称叫做:svn-demo,创建仓库的命令如下:

svnadmin create /opt/svn/repos/svn-demo

目录结构:
当创建完,项目仓库后,目录结构如下图所示:

目录含义:

  • conf:文件夹,存放配置文件

    • authz:授权文件
    • passwd:用户信息,包含用户名与密码
    • svnserve.conf:svn配置文件,配置账号和权限文件
  • db:版本数据存储目录
  • hooks:版本库勾子目录
  • locks:存储库锁目录,用来跟踪库的访问

4、为svn仓库设置用户权限

4.1 新增用户

passwd文件中,设置用户密码,格式为userName=Password,比如:

admin=123456

4.2 配置用户权限

authz文件中,设置用户权限,格式为userName=Auth

如果设置为*=则表示其他用户无任何权限;

权限由权限目录用户映射关系组成

  • [/]: 表示用户可以访问整个目录;
  • [/test] :表示用户只能访问test目录;
  • userName=Auth:表示用户对应的权限值;

权限值分为三类:

  • r: 表示读权限
  • w: 表示写权限
  • rw: 表示可读可写权限

比如:

# admin 具有读写权限,并且可以操作所有目录
[/]
admin = rw;
*=# admin 具有读写权限,只能操作test目录
[/test]
zhangsan = rw;
*=

5、配置svnserve.conf

vim svnserve.conf

内容如下:

[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz

6、启动

svnserve -d -r /opt/svn/repos  --listen-port=3690 --config-file=/opt/svn/repos/svn-demo/conf/svnserve.conf

/opt/svn/repos为svn根目录

测试:
访问地址:svn://ip:3690/svn-demo,svn-demo为svn项目仓库名称;

7、新增仓库及用户

如果新增一个svn仓库,只需要重复上述的3、4、5、6这四个步骤即可;
可以不用重启svn服务;

8、配置开机自启

1、创建svnserver.service文件:

vim /lib/systemd/system/svnserve.service

2、内容:

[Unit]
Description=SVN Server service
After=network.target[Service]
Type=forking
ExecStart= /usr/bin/svnserve -d -r /opt/svn/repos  --listen-port=3690 --config-file=/opt/svn/repos/svn-demo/conf/svnserve.conf[Install]
WantedBy=multi-user.target

3、开启自启与启动:

systemctl enable svnserve.servicesystemctl start svnserve.service

9、配置http服务(非必须)

完成上述前8步配置后,已经可以正常使用;通过配置http服务后,可以直接在浏览器端进行访问,但是如果要使用http服务,那么需要配置额外的用户和权限;

9.1 查看http-svn安装情况

ls /etc/httpd/modules/ | grep svn

ls: cannot access /etc/httpd/modules/: No such file or directory表示没有安装

9.2 安装

yum  -y install mod_dav_svn


查看安装结果:

ls /etc/httpd/modules/ | grep svn

9.3 修改subversion.conf配置

vim /etc/httpd/conf.d/subversion.conf

修改<Location />标签设置与http与svn的映射,一个<Location />标签表示一个项目仓库,比如:

<Location /svn-demo>  DAV svn  SVNPath /opt/svn/repos/svn-demo/          AuthType Basic  AuthName "Subversion repos"AuthUserFile /opt/svn/repos/svn-demo/conf/httpPasswdAuthzSVNAccessFile /opt/svn/repos/svn-demo/conf/authzRequire valid-user
</Location>
  • svn-demo:svn仓库名称;
  • SVNPath:svn仓库路径;
  • AuthType:认证类型;
  • AuthName: 描述名称,任意值即可;
  • AuthUserFile:这个是http协议的访问账户密码文件,通过htpasswd命令创建;
  • AuthzSVNAccessFile:http权限认证文件,与svn的默认权限设置一样;
  • Require: 需要认证用户才可以访问;

9.4 创建第一个用户(新增后需要设置权限)

创建命令:

# 创建用户
htpasswd -c -m /opt/svn/repos/svn-demo/conf/httpPasswd root
  • -c:创建一个加密文件;只有第一次创建账户密码时使用;
  • -m:默认采用MD5算法对密码进行加密;
  • /opt/svn/repos/svn-demo/conf/httpPasswd:为AuthUserFile配置的路径;
  • root:创建的用户名称;

创建用户步骤:

9.5 新增、删除用户(新增后需要设置权限)

新增用户:

#  username:用户名, password:密码
htpasswd -mb /opt/svn/repos/svn-demo/conf/httpPasswd username password

删除用户:

# root为用户名
htpasswd -D root

9.6 设置用户权限

authz文件中,设置用户权限,格式为userName=Auth

如果设置为*=则表示其他用户无任何权限;

权限由权限目录用户映射关系组成

  • [/]: 表示用户可以访问整个目录;
  • [/test] :表示用户只能访问test目录;
  • userName=Auth:表示用户对应的权限值;

权限值分为三类:

  • r: 表示读权限
  • w: 表示写权限
  • rw: 表示可读可写权限

比如:

/opt/svn/repos/svn-demo/conf/authz

内容:

# admin 具有读写权限,并且可以操作所有目录
[/]
root= rw;
*=# admin 具有读写权限,只能操作test目录
[/test]
zhangsan = rw;
*=

9.7 配置httpd权限

创建一个新的仓库后,也需要重新配置httpd权限

chown -R apache:apache /opt/svn/repos/svn-demo/

重启httpd服务:

service httpd restart

9.9 修改http端口

默认情况下,httpd的默认的端口为80,通过修改httpd.conf进行设置端口;

# 修改
vim /etc/httpd/conf/httpd.conf# 内容,比如修改端口为90
Listen 90

重启httpd服务:

service httpd restart

9.9 测试

配置http后,可以直接在浏览器中访问svn项目,比如访问svn-demo;

地址:http://162.14.119.135:90/svn-demo/

什么是SVN,Linux环境如何安装最新版Svn服务(yum安装1.14.1)相关推荐

  1. linux dhcp 服务失败,Centos7安装及配置DHCP服务,安装程序配置服务失败

    Centos7安装及配置DHCP服务,安装程序配置服务失败 DHCP服务概述: 名称:DHCP  - Dynamic Host Configuration Protocol  动态主机配置协议. 功能 ...

  2. centos 7.9 yum 安装最新版docker与dnf安装docker compose v2

    centos 7.9 yum 安装最新版docker与dnf安装docker compose v2 一.环境查看 1.系统内核 #uname -r 2.系统版本 #cat /etc/redhat-re ...

  3. 在Linux环境下通过百度网盘下载并安装matlab2017a

    前言 百度网盘下载matlab2017a安装包 方式1:安装百度网盘的python程序bypy 方式2:直接在浏览器下载 安装matlab 备注 参考链接 前言 最近参加一个比赛,需要在官方公布的li ...

  4. 无root 权限 linux安装 rar,centos上如何yum安装rar/unrar及手动安装最新rar

    这篇文章因为年代久远,因为部分源失效,导致不可用,最新的教程见Linux中安装rar [root@hello ~]# yum install unrar centos                 ...

  5. [Linux运维基础]全家桶详解!Linux中RPM包、wget下载、YUM安装、tar包、zip等包管理方式区别与参数详解,附wget下载源码包编译安装方法

    文章目录 一.RPM.tar.gz 1.rpm包格式 2.rpm包管理 3.tar包管理参数 二.wget 1.wget参数 2.wget下载源码包后编译安装 三.YUM 1.YUM工作原理 2. Y ...

  6. Rsync文件同步软件在CentOS Linux 8下的安装与配置(DNF/YUM安装方式)

    以前比较喜欢源码编译的方式来安装各种的软件.后来发现,有些软件的源码自己根本就没看过,也不准备去更改一下它的代码和配置,所以还不如直接就用YUM安装的方式.这样做最大的好处是不耽误时间. 另外,我没有 ...

  7. linux的mysql本地yum安装_Linux系统下使用yum安装mysql

    1.安装rpm包 直接使用yum -y install 命令安装mysql是无法安装mysql的高级版本,需要先安装带有可用的mysql5系列社区版资源的rpm包,输入如下命令进行安装. 2.查看my ...

  8. Linux环境使用阿里云短信服务报错

    校对Linux时间 由于阿里云短信服务需要时间相差15min以内,所以先校对linux系统时间 查看系统配置文件 vim /etc/sysconfig 修改时区为Asia/Shanghai ZONE= ...

  9. centos的yum安装mysql客户端_Centos7,yum安装mysql

    Linux 使用yum命令安装mysql [环境安装] 1.先检查系统是否安装有mysql [root@localhost ~]#yum list installed mysql* 2.查看有没有安装 ...

最新文章

  1. SQL 基础之去重和显示表结构(四)
  2. 实践基于REST风格的Webservice(PHP,C#)
  3. python中的日志操作和发送邮件
  4. 应用DIV+CSS编码时容易犯的一些错误
  5. Django环境的搭建以及最简示例
  6. 邀请参加活动的邀请函_圣诞节点灯仪式活动邀请函制作
  7. 成功解决 keras\callbacks.py:999: UserWarning: `epsilon` argument is deprecated and will be removed, use
  8. nginx 正则 结尾 配置_nginx正则配置解释多用于伪静态规则
  9. python多线程操作字典_在Python中使用带有线程的全局字典
  10. 华为HMS生态解析与移动生态盘点
  11. 剑指offer 11.旋转数组的最小数字
  12. PHP extension mcrypt must be loaded.
  13. 不同芯片的 Mac 电脑,差距会逐渐拉大吗?
  14. 手把手教你通过Eclipse工程配置调用JNI完全攻略
  15. Vim安装使用和配置
  16. 计算机网络实验报告 接墙上的,计算机网络实验报告模板.doc
  17. 知了课堂学习笔记一-Django预热-虚拟环境
  18. JLINK+AXD 调试出现 RDI Warning 00005:Data Abort 问题的解决办法
  19. 【Nacos】Nacos注册中心的使用
  20. APT样本分析 -plugx家族RAT⽊⻢

热门文章

  1. 织梦dedecms文章发布日期时间调用标签大全
  2. 计算机控制技术课程配套教材习题解答(第6、7、8章)
  3. 简要分析计算机的工作过程,计算机的工作原理.doc
  4. Tomcat服务器工作原理
  5. 八、输入jps时有DataNode但是网页上没有
  6. Java如何决定对象的生死及对象该如何逃脱?
  7. vue项目实现从商品列表页跳转详情页后,返回列表页保持页面在原位置,且列表页刷新的方法
  8. Pinyin4j实现中文转拼音的功能
  9. css 不规则边角_css绘制不规则三角形
  10. 哪些话务耳机电话耳麦通话好用!蓝牙耳机通话清楚盘点