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

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

1.安装svn服务器linux

查看系统下有没有安装过老版本的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 一直会提示“认证失败”

不同项目的权限管理:

crmweb 仓库名称

第一种方式:单个添加:

# 按账号分权限

[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号;再启动

切记搭建完成后 需要在服务其上拉取代码  才可看到

附带SVN钩子 自动发布部署web服务器:https://blog.csdn.net/qq_32731747/article/details/82262716

新建post-commit,执行vim post-commit 内容如下  在 hooks目录下 直接cp一个post-commit  然后添加如下代码

mailer.py commit "$REPOS" "$REV" /path/to/mailer.conf
export LANG=en_US.UTF-8
SVN=/usr/bin/svn                  #这里配置的是svn安装bin目录下的svn文件
WEB=/www/wwwroot/www.CML.com      #要更新的目录
svn update $WEB --username test --password 123456
chown -R www:www  $WEB

给与权限:

chmod +x post-commit

到/home/www下checkout项目

svn checkout svn://127.0.0.1/project/

svn环境搭建 linux相关推荐

  1. iphone 3.1.2开发环境搭建——linux平台

    iphone 3.1.2开发环境搭建--linux平台 一.引子 前段时间看到了apple公司发布了iphone os4.0的预览视频,iphone终于打算支持多任务了,尤其是对于预览视频中的skyp ...

  2. 驱动开发 - WDK 调试及 SVN 环境搭建[转]

    由于从公司辞职了,所以以前在公司里搭建的驱动开发环境也就 Game Over 了, 同样由于那环境是很久以前搭建的,自己也有很多记不清楚的地方了, 而且其中还是有很多需要注意的地方的,所以在这里顺便做 ...

  3. springcloud学习笔记---环境搭建--Linux下jdk安装

    springcloud学习笔记-环境搭建–Linux下jdk安装 1.官网下载jdk1.11 链接: https://pan.baidu.com/s/1vZ4PoJAnwczkRICfCNKHAA 提 ...

  4. Linux上Svn环境搭建

    一般情况下,Linux都是自带SVN环境的. 查看svn是否安装了 [14:50:28][root@VM60 ~]# rpm -aq subversion [14:50:30]subversion-1 ...

  5. 人工智能运行环境linux,Intel OpenVINO 人工智能推论环境搭建 (Linux) 第一章

    一· ubunbu18.04操作系统环境安装. 快捷安装Ubuntu8.04 二· OpenVINO 针对 Ubunbu18.04运行环境依赖安装. 由于cn.archive.ubuntu.com,在 ...

  6. linux环境 前端开发环境搭建,Linux运维知识之linux 前端环境搭建

    本文主要向大家介绍了Linux运维知识之linux 前端环境搭建,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助. 1.下载node.js 2.在linux 里使用wget命令 w ...

  7. Ubuntu 美化和常用环境搭建 -- Linux 环境搭建(下)

    NVIDIA显卡驱动安装 通过"附加驱动"安装驱动 通过PPA安装最新驱动 美化和扩展插件 GNOME 扩展推荐(针对 GNOME 桌面) 主题推荐(GNOME 和 Unity 桌 ...

  8. SVN环境搭建详解(来源网络)

    SVN服务器搭建和使用(一) Subversion是优秀的版本控制工具,其具体的的优点和详细介绍,这里就不再多说. 首先来下载和搭建SVN服务器. 现在Subversion已经迁移到apache网站上 ...

  9. 环境搭建Linux学习

    linux基础 服务器 Server 指硬件:类似一台电脑/主机,往往配置很高,用来运行业务系统.分为物理服务器和云服务器两种. 指软件:比如Nginx.Apache.Tomcat等软件服务器. 工作 ...

  10. Qt开发环境搭建(Linux)

    Windows 搞完了开始Linux吧 我选择的是虚拟机Ubuntu18.04 Qt 5.6.2 Qt Creator4.5.1 https://download.qt.io/official_rel ...

最新文章

  1. R语言glm拟合logistic回归模型:模型评估(模型预测概率的分组密度图、混淆矩阵、准确率、精确度、召回率、ROC、AUC)、PRTPlot函数获取logistic模型最优阈值(改变阈值以优化)
  2. python可以干嘛知乎-一行Python代码能做什么?
  3. 【Python】4000字归纳总结 Pandas+Sklearn 带你做数据预处理
  4. mysql 如何凭借几个列_我如何总结MySQL中的几个列
  5. $Android自定义控件在不同状态下的属性
  6. Petya and Staircases CF212div.2B
  7. 强口令检测(使用正则表达式)
  8. vue项目中配置eslint和prettier
  9. 580刷590bios_RX580 2048sp刷vbios降为RX570 用上黑苹果美滋滋
  10. 软件工程c语言课程设计的作用,C语言课程设计指导书2016版HNUST
  11. Spark优化——推测执行机制
  12. 大数据分析学习的详细解读
  13. MD5加密算法及其在Java中的使用
  14. win10html5无法播放,Win10网页视频无法播放提示启用adobe flash player
  15. 【数据可视化】贾跃亭和恒大对战:他的商业帝国梦是最后的狂欢还是东山再起?...
  16. 不会接口测试?用Postman轻松入门(三)——Get请求详解
  17. 数据分析行业中的数据运营是怎么一回事?
  18. qt程序在Linux下字体乱了,QT5程序字体渲染的问题
  19. 使用DirectX打造游戏GUI界面(一)
  20. 王者服务器为什么在5月20日维护,王者荣耀5.20更新公告最新消息 王者荣耀5月20日更新内容汇总...

热门文章

  1. MySQL倒计时查询剩余时间xx年xx月xx天
  2. WIN10重置网络后网络适配器不见了并且适配器驱动感叹号
  3. 浏览器goback跨域
  4. Hive3.1.2安装指南
  5. php验证是否为整数(0、正整数、负整数)
  6. 秒杀项目总结及面试常见问题
  7. 那个“天使”阿桑奇又回来了
  8. SEO优化 关键词部署策略
  9. xpath 爬取51job,存于excel
  10. 2017.8.18总结3-沙耶的玩偶