【SVN】centos7搭建svn--亲测能通

centos7.6搭建svn

  • [1 知识小课堂](#1 知识小课堂)
    • [1.1 CentOS](#1.1 CentOS)
    • [1.2 SVN](#1.2 SVN)
  • [2 搭建过程](#2 搭建过程)
    • [2.1 前期准备](#2.1 前期准备)
    • [2.2 通过yum命令安装svnserve](#2.2 通过yum命令安装svnserve)
    • [2.3 创建版本库目录](#2.3 创建版本库目录)
    • [2.4 创建svn版本库](#2.4 创建svn版本库)
    • [2.5 配置修改](#2.5 配置修改)
    • [2.5 防火墙配置](#2.5 防火墙配置)
    • [2.6 启动或关闭svn服务器](#2.6 启动或关闭svn服务器)
      • [2.6.1 进程守护](#2.6.1 进程守护)
      • [2.6.2 检测svn端口3690是否已经监听:](#2.6.2 检测svn端口3690是否已经监听:)
      • [2.6.3 关闭SVN](#2.6.3 关闭SVN)
    • [2.7 客户端访问svn服务器](#2.7 客户端访问svn服务器)
      • [2.7.1 Windows 连接](#2.7.1 Windows 连接)
      • [2.7.2 Linux 连接](#2.7.2 Linux 连接)
  • [3 搭建过程可能遇到的问题](#3 搭建过程可能遇到的问题)
    • [3.1 修改SVN 的端口号](#3.1 修改SVN 的端口号)
    • [3.2 参考连接](#3.2 参考连接)

1 知识小课堂

1.1 CentOS

CentOS(Community ENTerprise Operating System)是Linux发行版之一,中文意思是社区企业操作系统。它是免费的、开源的、可以重新分发的开源操作系统。CentOS Linux发行版是一个稳定的,可预测的,可管理的和可复现的平台,源于Red Hat Enterprise Linux(RHEL)依照开放源代码(大部分是GPL开源协议)规定释出的源码所编译而成。

自2004年3月以来,CentOS Linux一直是社区驱动的开源项目,旨在与RHEL在功能上兼容。每个版本的CentOS都会获得十年的支持(通过安全更新方式),新版本的CentOS大约每两年发行一次。而每个版本的CentOS会定期(大概每六个月)更新一次,以便支持新的硬件。

相对于其他Linux发行版,其稳定性值得信赖。它可以用来构建企业级的Linux系统环境,而不需要向RedHat付任何的费用。CentOS的技术支持主要通过社区的官方邮件列表、论坛和聊天室。

总的来说,CentOS适合那些需要企业级操作系统稳定性,但又不想承担认证和支持成本的人和组织。

1.2 SVN

官方网站:SVN中文网

SVN,全称为Subversion,是一个开放源代码的版本控制系统。

它的主要功能是管理随时间改变的数据,这些数据可以是文档、源代码等。SVN用于多个人员、设备之间同步不同版本的文档和源代码,从而实现共享资源,最终集中式的管理。简而言之,SVN就是用于多人共同开发同一个项目,实现共享资源,实现最终集中式的管理。

SVN版本控制系统具有速度快、安全性高等优势,被广泛应用于软件程序开发。对于编程人员而言,版本控制技术是团队协作开发的桥梁,有助于多人同步进行大型程序开发。在实际编程中,文件的合并过程一般需要编程人员共同协商决定。

此外,SVN还是一个分支管理系统的高效管理工具。其采用分支管理系统的高效管理方式简化了多个人共同开发同一个项目的流程。通过使用分支管理系统,SVN能够实现共享资源、最终集中式的管理,提高了软件开发和管理的效率。

以上内容仅供参考,建议咨询计算机领域专业人士或查阅相关文献资料获取更全面和准确的信息。

2 搭建过程

2.1 前期准备

  • 系统环境:centos7
  • 首先关闭防火墙,NetworkManager,selinux
  • 配置好本地yum源
  • centos连接工具:Finalshell
  • 先升级一下命令
    刚装的系统,可能命令有些落后,需要升级
shell 复制代码
yum update -y

2.2 通过yum命令安装svnserve

先查看系统中是否存在subversion软件?

shell 复制代码
rpm -qa|grep subversion


备注

可能有些centos镜像已经存在,

默认ISO里已经有subversion软件包了,且,最小化版本中已经装好了subversion软件包了;

如果已存在,可忽略此步骤;若不存在,则利用yum安装此软件:

如果已存在,可忽略此步骤;若不存在,则利用yum安装此软件:

yum -y install subversion

查看svn的安装目录

shell 复制代码
rpm -ql subversion

查看svn版本:

shell 复制代码
/usr/bin/svnversion --version

2.3 创建版本库目录

目录随意,可以自定义目录名。

创建版本库目录(此仅为目录,为后面创建版本库提供存放位置)

选择在var路径下创建版本库:

创建版本库目录,可以一步步操作

创建svn目录

powershell 复制代码
mkdir svn 

进入svn目录中并创建svnrepos目录

cd /home/data/svn

powershell 复制代码
mkdir svnrepos

当前的目录位置:

shell 复制代码
/home/data/svn/svnrepos

2.4 创建svn版本库

在2.3 建立的路径基础上,创建版本库,命令如下:

shell 复制代码
 svnadmin create /home/data/svn/svnrepos/devsvn

(devsvn为你预期的版本库名称,可自定义)

创建成功后,进入devsvn目录下

备注:

2.5 配置修改

进入已经创建好的版本库目录下,也就是前文说创建的test-svn,进入conf

powershell 复制代码
cd /home/data/svn/svnrepos/devsvn

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

  • authz:负责账号权限的管理,控制账号是否读写权限
  • passwd:负责账号和密码的用户名单管理
  • svnserve.conf:svn服务器配置文件
  1. 编辑 passwd 文件
powershell 复制代码
vim passwd


如上所示:

用户名为:admin,认证密码为:admin

  1. 编辑 authz 文件(注意:[/]也是必须的)

注意:在最后一行添加即可。

/\] 表示根目录,即 /var/svnrepos hg = rw 表示用户hg对根目录具有读写权限。 zxl = rw 表示用户zxl对根目录具有读写权限。 3. 编辑 svnserve.conf 文件(注意:配置的前面不能有空格,一定要顶格写) 放开一下一些配置。 ![在这里插入图片描述](https://file.jishuzhan.net/article/1738753096965689346/30ce352ba0dcad83a4d4b7005a41e331.webp) ![在这里插入图片描述](https://file.jishuzhan.net/article/1738753096965689346/52d0771a5c33316d9cc6fe795c2def7d.webp) * anon-access = none:表示禁止匿名用户访问。 * auth-access = write:表示授权用户拥有读写权限。 * password-db = passswd:指定用户名口令文件,即 passwd 文件。 * authz-db = authz:指定权限配置文件,即 authz 文件。 * realm = /home/data/svn/svnrepos:指定认证域,即 /home/data/svn/svnrepos 目录。 这个目录可以写绝对路径 ### 2.5 防火墙配置 **注意:如果防火墙关闭的话,此步骤可跳过;** **多数情况下服务器安装完成,配置完成后,无法连接svn服务器,均是防火墙问题【注意:如果是阿里云,腾讯云的服务器,还需在安全组添加端口开启规则】** 1. 查看防火墙状态 ```powershell firewall-cmd --state ``` ![在这里插入图片描述](https://file.jishuzhan.net/article/1738753096965689346/3f048849a523cdc3fd217a22e26c0178.webp) 2. 开启防火墙 ```powershell systemctl start firewalld.service ``` ![在这里插入图片描述](https://file.jishuzhan.net/article/1738753096965689346/98e0e886229d04e53f07776ec8679031.webp) 3. 开启端口 ```powershell firewall-cmd --zone=public --add-port=3690/tcp --permanent ``` 4. 重启防火墙 ```powershell systemctl restart firewalld.service ``` ![在这里插入图片描述](https://file.jishuzhan.net/article/1738753096965689346/e8aaa2ceca3b5a842069f3e20a68ffd4.webp) 5. 查看已开放的端口 ```powershell firewall-cmd --list-port ``` ![在这里插入图片描述](https://file.jishuzhan.net/article/1738753096965689346/599b3764d13a8c25e609444fa1a2ca73.webp) 6. 防火墙添加配置信息 ```powershell vi /etc/sysconfig/iptables ``` 7. 添加配置信息 ```powershell -A INPUT -p tcp -m state --state NEW -m tcp --dport 3690 -j ACCEPT ``` ![在这里插入图片描述](https://file.jishuzhan.net/article/1738753096965689346/490f8f7c0cc2f47898a3251fdf6a605e.webp) 1. 保存退出,命令:【`:wq`】 ![在这里插入图片描述](https://file.jishuzhan.net/article/1738753096965689346/d74eb2804d06dede8292307c33676a4c.webp) ```powershell systemctl restart iptables.service #重启防火墙使配置生效 ``` ### 2.6 启动或关闭svn服务器 #### 2.6.1 进程守护 ```powershell svnserve -d -r /home/data/svn/svnrepos ``` 参数: * `-d`:表示后台运行守护模式; * `-r` : 表示svn服务的根目录; **注意。这里目录指的时版本库存放目录位置** #### 2.6.2 检测svn端口3690是否已经监听: ```powershell netstat -antlp|grep svnserve ``` ![在这里插入图片描述](https://file.jishuzhan.net/article/1738753096965689346/e4de25ad8ef2ad70fbbfd5a99fba95fc.webp) ```powershell netstat -antlp|grep 3690 ``` ![在这里插入图片描述](https://file.jishuzhan.net/article/1738753096965689346/26ff38d528b40587cf1ea2563090bbfb.webp) ```powershell ps -ef | grep 'svnserve' ``` ![在这里插入图片描述](https://file.jishuzhan.net/article/1738753096965689346/28994bc441cf1e0992c287fcdc6c3810.webp) #### 2.6.3 关闭SVN 这里采取linux杀死进程的方式处理的 ```powershell ps -ef|grep svnserve ``` ![在这里插入图片描述](https://file.jishuzhan.net/article/1738753096965689346/33fef1ab2e2c3d496db0c67a2e942ade.webp) 这里 `kill -9 29154`杀死进程, 此`29154`为进程号 ![在这里插入图片描述](https://file.jishuzhan.net/article/1738753096965689346/868c766441ccc8cfdbce223626c5e6b2.webp) ### 2.7 客户端访问svn服务器 #### 2.7.1 Windows 连接 `Windows`下常用的客户端软件常用`TortoiseSVN`。它是一个免费的开源的客户端。 找一个空白文件夹,右键检出。详细配置过程可参考我的主页中 : [SVN服务端客户端安装配置](https://blog.csdn.net/CSDN_Admin0/article/details/133833855) 在`windows`客户端,输入地址:`svn://ip地址:3690/xxxx` (`iP`地址为你`linux`的`ip`,`xxxx`为前文创建的版本库名称,`3690`为`svn`默认端口) 弹出输入用户名和密码,输入即可访问 `svn://192.168.3.10:3690/devsvn` 搭建成功。 ![在这里插入图片描述](https://file.jishuzhan.net/article/1738753096965689346/7f5cc3ede65b2aed9b21bbbc3006f778.webp) ![在这里插入图片描述](https://file.jishuzhan.net/article/1738753096965689346/b5824fbf29fda30073fc6ea7b36358a2.webp) 这里测试增加、修改、删除文件均没问题,一切正常。 #### 2.7.2 Linux 连接 在linux服务器输入命令测试: ```powershell svn co svn://ip地址:3690/xxxx ``` 如下为例子: ```powershell svn co svn://192.168.3.10:3690/devsvn ``` ![在这里插入图片描述](https://file.jishuzhan.net/article/1738753096965689346/cc86d23b28fde57115a6eee4aa8139bf.webp) 下载的`SVN`目录在`/home`目录下 ![在这里插入图片描述](https://file.jishuzhan.net/article/1738753096965689346/958469384424aa8dfaa4beaf86bfe7d8.webp) ## 3 搭建过程可能遇到的问题 ### 3.1 修改SVN 的端口号 注意,这边配置了3693端口口,客户顿无法访问原来的版本库: 本人建议指定端口的启动方式,如果建立多个仓库,也便于管理。 svn默认端口为3690,需要在防火墙添加才可在svn客户端访问 在此,我选择用3693端口启动 启动命令:svnserve -d -r /home/data/svn/svnrepos/ --listen-port 3693 ![在这里插入图片描述](https://file.jishuzhan.net/article/1738753096965689346/f2c1b5d59d3886ad3c8ffb8207971db4.webp) ### 3.2 参考连接 * [centos7.6搭建svn](https://blog.csdn.net/weixin_39246554/article/details/107286559) * [SVN客户端下载安装教程](https://blog.csdn.net/CSDN_Admin0/article/details/133631805) * [SVN服务端客户端安装配置](https://blog.csdn.net/CSDN_Admin0/article/details/133833855)

相关推荐
虎头金猫4 小时前
如何解决 403 错误:请求被拒绝,无法连接到服务器
运维·服务器·python·ubuntu·chatgpt·centos·bug
小彭律师5 小时前
使用VSCode在Windows 11上编译运行项目
ide·windows·vscode
muxue1785 小时前
关于almalinux分区配置:
linux·运维·数据库
dqsh066 小时前
树莓派5+Ubuntu24.04 LTS串口通信 保姆级教程
人工智能·python·物联网·ubuntu·机器人
独行soc7 小时前
2025年渗透测试面试题总结-某服面试经验分享(附回答)(题目+回答)
linux·运维·服务器·网络安全·面试·职场和发展·渗透测试
sunshineine8 小时前
jupyter notebook运行简单程序
linux·windows·python
O。o.尊都假都8 小时前
UDP协议
linux·服务器·网络·网络协议·udp
开开心心_Every9 小时前
手机隐私数据彻底删除工具:回收或弃用手机前防数据恢复
android·windows·python·搜索引擎·智能手机·pdf·音视频
leo·Thomas9 小时前
NetBox Docker 全功能部署方案(Ubuntu 22.04 + Docker)
运维·ubuntu·docker·容器·资产管理
天夏已微凉9 小时前
1.3.1 Linux音频框架alsa详细介绍
linux·音视频