阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

如何在CentOS7中安装Subversion 1.9.7

324次阅读
没有评论

共计 3922 个字符,预计需要花费 10 分钟才能阅读完成。

因为项目需要在 CentOS 7.4 环境下搭建一个 SVN 服务器,但是 CentOS 里自带的 subversion 版本只到 1.7.14
如何在 CentOS7 中安装 Subversion 1.9.7

与 Subversion 官网 8 月 10 日发布的 SVN 1.8.19, SVN 1.9.7 相去甚远,会严重影响 SVN 客户端的使用,因此我们需要卸载掉自带的 Subversion,使用 yum 方式重新安装 Subversion 最新版本

我们执行命令

yum remove subversion*

yum clean all

直接卸载 subversion 和相关库包

但是当我们使用 yum 命令再安装 subversion 时,发现 CentOS 自带源的 Subversion 版本仍然是 1.7.14
如何在 CentOS7 中安装 Subversion 1.9.7

说明从 CentOS 自带源安装 Subversion 最新版本此路不通,我们需要另行添加 Repo 源

参考 https://tecadmin.net/install-subversion-1-8-on-centos-rhel/# 一文,我们在

/etc/yum.repos.d 目录下添加 subversion.repo 文件,内容如下

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

由于我们这里安装的是 SVN1.9,在 repo 文件里配置的是 svn-1.9,如果要安装 SVN1.8,可以改为 svn-1.8

执行 yum install -y subversion 命令安装 Subversion
如何在 CentOS7 中安装 Subversion 1.9.7

下列步骤参考了 https://www.cnblogs.com/fuyuanming/p/6123395.html 一文,

有部分有所修改

1)创建运行 SVN 服务器所需的用户 svn
groupadd svn
useradd -g svn svn

这里之所以要创建 svn 用户启动 SVN 服务器,而不使用 root 用户启动 SVN 服务器,是因为如果使用 root 用户启动 SVN 服务器,通过 SVN 客户端使用非 root 账户访问 SVN 服务器时,会出现

“xxxxxxxx db/txn-current-lock:permission denied” 错误。

将 svn 用户加入 sudoers 用户中
如何在 CentOS7 中安装 Subversion 1.9.7

2)执行 rpm -ql subversion 命令了解 SVN 安装的位置

如何在 CentOS7 中安装 Subversion 1.9.7

3)创建 SVN 版本库文件夹
mkdir -p /opt/svnRepos

切换到 svn 用户,为 svn 用户添加这个文件夹的访问权限

sudo chmod -R o+rw /opt/svnRepos

如何在 CentOS7 中安装 Subversion 1.9.7

4)创建 SVN 版本库
svnadmin create /opt/svnRepos

执行命令后 /opt/svnRepos 文件夹下新增了一些文件夹
如何在 CentOS7 中安装 Subversion 1.9.7

5)添加用户密码和访问权限

进入 conf 目录,可以看到以下文件
如何在 CentOS7 中安装 Subversion 1.9.7

authz 文件是权限控制文件

passwd 是帐号密码文件

svnserve.conf 是 SVN 服务配置文件

修改 passwd 文件,在 [users] 段添加用户 svnuser1 和访问密码
如何在 CentOS7 中安装 Subversion 1.9.7

修改 authz 文件,在文件最后为 svnuser1 用户添加 svn 根目录访问权限
如何在 CentOS7 中安装 Subversion 1.9.7

这里 [/] 表示是 svn 根目录,svnuser1=rw 说明 svnuser1 用户对根目录有读写权限。如果要限制某些用户对某些文件夹的

读写权限, 这里的 [/] 可以改为具体的文件夹目录,再添加具体的用户权限,这里不再赘述。

6) 修改 svn 配置文件

修改 svnserve.conf 文件

打开以下几项的注释(图中以白色字体标注)
如何在 CentOS7 中安装 Subversion 1.9.7

anon-access = read #匿名用户可读

auth-access = write #授权用户可写

password-db = passwd #使用哪个文件作为账号文件

authz-db = authz #使用哪个文件作为权限文件

realm = /opt/svnRepos # 认证空间名,版本库所在目录

7)启动 SVN 服务器

执行以下命令

svnserve -d -r /opt/svnRepos --config-file=/opt/svnRepos/conf/svnserve.conf

这条指令的参数 - d 表示以守护进程形式运行 Svn 服务器,- r 表示 Svn 服务器的根目录,后接 SVN 的根目录。

–config-file 是 Svn 服务器启动所引用的配置文件,后接配置文件路径。

svnserve 指令的更多参数可以参考此文

https://linux.die.net/man/8/svnserve

启动后可以查看到 svnserve 进程已经启动
如何在 CentOS7 中安装 Subversion 1.9.7

8)在防火墙上开放 SVN 服务器端口

SVN 服务器默认端口是 3690,如果要修改默认端口,可以在运行 svnserve 命令时添加 –listen-port 参数,后接需要指定的端口号。

执行以下命令在 CentOS7 系统防火墙上开放 SVN 服务器端口

firewall-cmd --permanent --add-port=3690/tcp

systemctl restart firewalld.service

在客户端安装 Tortoise SVN 1.9.7, 安装完成后新建一个文件夹,在文件夹中右击,在弹出右键菜单中选择 [Repo-brower] 菜单,在弹出的地址对话框中输入 SVN://IP(我们这里是 SVN://192.168.56.102), 再在验证对话框中输入用户名 rick 和密码,即可以访问 SVN 根目录, 我们使用 svnuser1 用户登录 SVN, 如下图所示
如何在 CentOS7 中安装 Subversion 1.9.7

我们使用 svnuser1 用户在根目录下新建 trunk,tags 和 branches 三个文件夹
如何在 CentOS7 中安装 Subversion 1.9.7

9)将 SVN 服务器设置为开机启动服务

网上有相关文件通过修改 /etc/rc.local 文件设置 SVN 服务器开机启动,这种做法在 CentOS 7 环境下已经过时,我们使用 CentOS 7 正常添加服务的方式。

我们切换到 /usr/lib/systemd/system 目录下,创建名为 svnserver.service 的文件,添加以下内容

[Unit]
Description=SVN Server service  
After=network.target

[Service]
Type=forking
ExecStart= /usr/bin/svnserve -d -r /opt/svnRepos --config-file=/opt/svnRepos/conf/svnserve.conf
ExecStop=  /home/svn/stopSVN.sh
User=svn
Restart=on-abort

[Install]
WantedBy=multi-user.target

这里启动 SVN 服务器直接使用命令,我试过写一个.sh 文件替换,但启动后出现 code=exited,status=203/EXEC 错误,改用现在这种形式。

stopSVN.sh 是用于关闭 SVN 服务的脚本文件,内容如下:

#!/bin/sh
#查找是否有 svnserve 对应的进程,有的话关闭进程
ps -ef|grep svnserve |grep -v grep
if [$? -ne 0]
then
   echo "the svn server does not start"
else
   killall -9 sh svnserve
fi
#####

保存 svnserver.service 文件后,执行以下命令

systemctl daemon-reload
systemctl enable svnserver.service
systemctl start svnserver.service

如果 shell 窗口没有出现错误信息,表示启动已成功,我们可以执行以下命令检查启动状态

systemctl status svnserver.service

如何在 CentOS7 中安装 Subversion 1.9.7

运行以下命令停止服务

systemctl stop svnserver.service

我们这时再运行 systemctl stop svnserver.service,可以看到服务已经被停掉

至此 SVN 服务器在 Linux 服务器安装成功,再次启动 CentOS 系统后 SVN 服务器会开机启动。

补充一点,CentOS 自带的 SELinux 默认是 Enforcing,处于打开状态,对于自启动的 SVN 服务,会导致客户端访问 SVN 服务器时出现 Permisson Denied 的错误,我们需要手动关闭它,修改 /etc/selinux/config 文件

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

把 SELINUX 从 enforcing 改为 disabled,重启系统,SVN 服务自启动后,从客户端访问不再出现 Permssion Denied 错误。

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-24发表,共计3922字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7977158
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你 为什么要用宝塔跑分? 宝塔跑分其实就是对 CPU、内存、磁盘、IO 做...
还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手! 前言 对于个人开发者、建站新手或是想搭建测试站点的从业者...
把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地 大家好,我是星哥,今天教大家在飞牛 NA...
星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定!

星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定!

星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定! 前言 作为 NAS 玩家,你是否总被这些...
小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比

小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比

小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比 星哥玩云,带你从小白到上云高手。今天咱们就来聊聊——什...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛 NAS 硬件 03:五盘位 +N5105+ 双网口的成品 NAS 值得入手吗 前言 大家好,我...
多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞...
还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手! 前言 对于个人开发者、建站新手或是想搭建测试站点的从业者...
4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

  4 盘位、4K 输出、J3455、遥控,NAS 硬件入门性价比之王 开篇 在 NAS 市场中,威...
12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换...