svn环境搭建 linux
官网下载: 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相关推荐
- iphone 3.1.2开发环境搭建——linux平台
iphone 3.1.2开发环境搭建--linux平台 一.引子 前段时间看到了apple公司发布了iphone os4.0的预览视频,iphone终于打算支持多任务了,尤其是对于预览视频中的skyp ...
- 驱动开发 - WDK 调试及 SVN 环境搭建[转]
由于从公司辞职了,所以以前在公司里搭建的驱动开发环境也就 Game Over 了, 同样由于那环境是很久以前搭建的,自己也有很多记不清楚的地方了, 而且其中还是有很多需要注意的地方的,所以在这里顺便做 ...
- springcloud学习笔记---环境搭建--Linux下jdk安装
springcloud学习笔记-环境搭建–Linux下jdk安装 1.官网下载jdk1.11 链接: https://pan.baidu.com/s/1vZ4PoJAnwczkRICfCNKHAA 提 ...
- Linux上Svn环境搭建
一般情况下,Linux都是自带SVN环境的. 查看svn是否安装了 [14:50:28][root@VM60 ~]# rpm -aq subversion [14:50:30]subversion-1 ...
- 人工智能运行环境linux,Intel OpenVINO 人工智能推论环境搭建 (Linux) 第一章
一· ubunbu18.04操作系统环境安装. 快捷安装Ubuntu8.04 二· OpenVINO 针对 Ubunbu18.04运行环境依赖安装. 由于cn.archive.ubuntu.com,在 ...
- linux环境 前端开发环境搭建,Linux运维知识之linux 前端环境搭建
本文主要向大家介绍了Linux运维知识之linux 前端环境搭建,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助. 1.下载node.js 2.在linux 里使用wget命令 w ...
- Ubuntu 美化和常用环境搭建 -- Linux 环境搭建(下)
NVIDIA显卡驱动安装 通过"附加驱动"安装驱动 通过PPA安装最新驱动 美化和扩展插件 GNOME 扩展推荐(针对 GNOME 桌面) 主题推荐(GNOME 和 Unity 桌 ...
- SVN环境搭建详解(来源网络)
SVN服务器搭建和使用(一) Subversion是优秀的版本控制工具,其具体的的优点和详细介绍,这里就不再多说. 首先来下载和搭建SVN服务器. 现在Subversion已经迁移到apache网站上 ...
- 环境搭建Linux学习
linux基础 服务器 Server 指硬件:类似一台电脑/主机,往往配置很高,用来运行业务系统.分为物理服务器和云服务器两种. 指软件:比如Nginx.Apache.Tomcat等软件服务器. 工作 ...
- Qt开发环境搭建(Linux)
Windows 搞完了开始Linux吧 我选择的是虚拟机Ubuntu18.04 Qt 5.6.2 Qt Creator4.5.1 https://download.qt.io/official_rel ...
最新文章
- R语言glm拟合logistic回归模型:模型评估(模型预测概率的分组密度图、混淆矩阵、准确率、精确度、召回率、ROC、AUC)、PRTPlot函数获取logistic模型最优阈值(改变阈值以优化)
- python可以干嘛知乎-一行Python代码能做什么?
- 【Python】4000字归纳总结 Pandas+Sklearn 带你做数据预处理
- mysql 如何凭借几个列_我如何总结MySQL中的几个列
- $Android自定义控件在不同状态下的属性
- Petya and Staircases CF212div.2B
- 强口令检测(使用正则表达式)
- vue项目中配置eslint和prettier
- 580刷590bios_RX580 2048sp刷vbios降为RX570 用上黑苹果美滋滋
- 软件工程c语言课程设计的作用,C语言课程设计指导书2016版HNUST
- Spark优化——推测执行机制
- 大数据分析学习的详细解读
- MD5加密算法及其在Java中的使用
- win10html5无法播放,Win10网页视频无法播放提示启用adobe flash player
- 【数据可视化】贾跃亭和恒大对战:他的商业帝国梦是最后的狂欢还是东山再起?...
- 不会接口测试?用Postman轻松入门(三)——Get请求详解
- 数据分析行业中的数据运营是怎么一回事?
- qt程序在Linux下字体乱了,QT5程序字体渲染的问题
- 使用DirectX打造游戏GUI界面(一)
- 王者服务器为什么在5月20日维护,王者荣耀5.20更新公告最新消息 王者荣耀5月20日更新内容汇总...