Linux-Ubuntu环境下搭建SVN服务器

Linux-Ubuntu环境下搭建SVN服务器

  • 一、背景
  • 二、前置工作
    • 2.1确定IP地址保持不变
    • 2.2关闭防火墙
  • 三、安装SVN服务器
  • 四、修改SVN服务器版本库目录
  • 五、调整SVN配置
    • 5.1查看需要修改的配置文件
    • 5.2修改svnserve.conf文件
    • 5.3修改passwd文件,添加账号和密码(windows中checkout时需要使用)
    • 5.4修改authz文件
  • 六、重启SVN服务
    • 6.1重启
    • 6.2查看SVN服务状态
    • 6.3杀死SVN进程命令(慎用)
  • 七、安装TortoiseSVN
  • 八、访问SVN服务器
  • 九、使用IDEA拉取SVN的代码
  • 十、SVN项目的提交
  • 感谢

一、背景

今天团队突然要求用SVN作为代码的同步工具,一时间很慌,入职的第一家公司是用的SVN,但是之前都是用Tortoise这款工具界面点选的,编译工具也是用的My Eclipse,现在一下切换了Idea工具和Git后,以前的知识忘掉了很多,自己搭建一个SVN服务器,更是想都没想过。不过越是有挑战的事情,我就更想尝试一下。那今天就试试吧。

二、前置工作

2.1确定IP地址保持不变

本次系统环境:Ubuntu20.04.6,因为公司用的Ubuntu,所以也是想尝试这个系统搭建。
首先确定IP,我不能让我的SVN服务器总是变地址,所以先做一下配置

cd /etc/netplan

然后

ls

如下:
在这里插入图片描述
然后修改这个文件,注意需要管理员权限,所以加上sudo

sudo vim 01-network-manager-all.yaml

修改内容如下:可以看到是yaml文件所以分号和空格都要对齐,很重要

 # Let NetworkManager manage all devices on this system
network:
  ethernets:
    ens33:
            dhcp4: false
            addresses: [IP地址/24]
            gateway4: 网关地址
            nameservers:
                    search: [mydomain , otherdomain]
                    addresses: [网关地址,114.114.114.114]

  version: 2
  renderer: NetworkManager

这里如果不知道网关地址,可以这样查看

nmcli dev show

最后执行如下命令生效

sudo netplan apply

之后重启系统

systemctl reboot

再执行命令

nmcli dev show

发现网络信息已经更改了

2.2关闭防火墙

接着关闭防火墙,NetworkManager,selinux;
首先在终端中输入

sudo ufw status

查看当前防火墙状态
在这里插入图片描述
可以看到目前防火墙是关闭状态。
如果防火墙是开启状态,可以在终端输入

sudo ufw disable

来关闭防火墙。

三、安装SVN服务器

利用以下命令查看自己的系统是否已经安装了svn:

svn

界面如下,说明没有安装SVN
Linux-Ubuntu环境下搭建SVN服务器_第1张图片
界面如下说明安装过了
在这里插入图片描述

根据提示完成SVN的安装

sudo apt-get install subversion

这里输入Y
Linux-Ubuntu环境下搭建SVN服务器_第2张图片
注意,输入的命令要加-get否则会像我一样
在这里插入图片描述
如果像我这样的报错,可以输入以下命令

sudo apt-get update

代码解释:

  • sudo:确保足够权限,以超级用户或管理员权限运行命令。
  • apt-get:软件包管理工具,管理软件包更新、安装、升级、删除。
  • update:通知apt-get 执行软件包列表更新操作。

下载完更新包界面如下:
Linux-Ubuntu环境下搭建SVN服务器_第3张图片
再次执行

sudo apt-get install subversion

再输入Y即可
Linux-Ubuntu环境下搭建SVN服务器_第4张图片
这样就是安装完毕了
Linux-Ubuntu环境下搭建SVN服务器_第5张图片
安装完成之后
可以验证指令

svn help

如下:表示安装成功
Linux-Ubuntu环境下搭建SVN服务器_第6张图片
如下命令可以查看svn的版本

svn --version

Linux-Ubuntu环境下搭建SVN服务器_第7张图片

四、修改SVN服务器版本库目录

subversion默认是把/var/svn作为数据根目录的,开机启动默认也是从这里。
因为/usr目录下用于存放普通用户的应用程序、库文件和文档,所以将SVN库存放在/usr下
创建版本库目录指令如下

cd usr

在这里插入图片描述
输入如下的指令:注意,这里需要sudo权限

sudo mkdir svn

可以看到svn目录创建出来了
在这里插入图片描述
进入到svn目录下中

cd /usr/svn

在这里插入图片描述
执行如下的指令:
其中heima-leadnews是我仓库的名称

sudo svnadmin create heima-leadnews

执行完之后,可以看到仓库下,初始化了一些文件
在这里插入图片描述

五、调整SVN配置

5.1查看需要修改的配置文件

进入conf目录,查看需要修改的配置文件

cd /usr/svn/heima-leadnews/conf

接着输入

ls

可以看到配置文件目录下,有这四个文件
Linux-Ubuntu环境下搭建SVN服务器_第8张图片

文件名称 作用
authz 权限配置文件,控制读写权限
passwd 账号密码配置文件
svnserve.conf svn服务器配置文件

5.2修改svnserve.conf文件

执行命令

sudo vim svnserve.conf

执行后,打开了配置文件
Linux-Ubuntu环境下搭建SVN服务器_第9张图片
我们只需要放开如下注释即可:

[general]
anon-access = read 【控制非鉴权用户访问版本库的权限】
auth-access = write 【控制鉴权用户访问版本库的权限】
password-db = passwd 【指定用户名口令文件名,即访问时要输用户名和密码】
authz-db = authz
realm = /MyBackup/svn/MyBackups 【指定版本库的认证域,即在登录时提示的认证域名称,改成自己的版本库】

具体如下
Linux-Ubuntu环境下搭建SVN服务器_第10张图片
保存并退出

:wq

5.3修改passwd文件,添加账号和密码(windows中checkout时需要使用)

执行指令

sudo vim passwd

在这里插入图片描述
尾行加上账号和密码即可
Linux-Ubuntu环境下搭建SVN服务器_第11张图片
保持并退出

:wq

5.4修改authz文件

执行指令

sudo vim authz

在这里插入图片描述
在根目录下设置用户读写权限(注意这里/根目录符号不要写反)
Linux-Ubuntu环境下搭建SVN服务器_第12张图片
保持并退出

:wq

六、重启SVN服务

到此,配置已经全部完成,账号信息已经添加成功
更改svnserver.conf时需要重启SVN服务才生效,更改authz,passwd文件时则不需要重启服务。

6.1重启

重启命令如下:

sudo svnserve -d -r /usr/svn/

在这里插入图片描述

6.2查看SVN服务状态

查看SVN服务状态命令:

ps aux|grep svnserve

在这里插入图片描述

6.3杀死SVN进程命令(慎用)

sudo killall svnserve

至此,SVN服务器已配置完成

七、安装TortoiseSVN

这里使用工具TortoiseSVN-1.14.5
下载地址:
TortoiseSVN-1.14.5.29465-x64-svn-1.14.2
汉化地址:
汉化包

安装,没啥说的,就是选择磁盘的时候,可以放到指定盘
Linux-Ubuntu环境下搭建SVN服务器_第13张图片
剩下一直Next和Install即可,最后问你是否立即重启,选择Yes会立即重启,选择No会稍后手动重启
Linux-Ubuntu环境下搭建SVN服务器_第14张图片
紧接着安装中文包,直接点击下一步即可,勾选这里
Linux-Ubuntu环境下搭建SVN服务器_第15张图片
单击鼠标右键,可以看到TortoiseSVN已经安装完毕
Linux-Ubuntu环境下搭建SVN服务器_第16张图片

八、访问SVN服务器

直接选择本地的一个文件夹作为本地库,右键检出,输入地址
Linux-Ubuntu环境下搭建SVN服务器_第17张图片
输入地址
Linux-Ubuntu环境下搭建SVN服务器_第18张图片

结果发现报错了
Linux-Ubuntu环境下搭建SVN服务器_第19张图片
原因很简单,因为重启后,虚拟机需要重新启动svn服务,执行指令

sudo svnserve -d -r /usr/svn/

那我这边重启后,用TortoiseSVN也报错了,原因是svnserve.conf文件第18行错误
Linux-Ubuntu环境下搭建SVN服务器_第20张图片
看了一下,去掉注释的时候,没有去掉前面的空格
Linux-Ubuntu环境下搭建SVN服务器_第21张图片

然后需要重启一下svn
查看进程PID

sudo netstat -ntpl

杀死相应的PID

sudo kill -9 2244

Linux-Ubuntu环境下搭建SVN服务器_第22张图片
再重启SVN

sudo svnserve -d -r /usr/svn/

这时候让输入用户名和密码,就说明成功了
Linux-Ubuntu环境下搭建SVN服务器_第23张图片
可以直接把本地的文件拖过去
Linux-Ubuntu环境下搭建SVN服务器_第24张图片

九、使用IDEA拉取SVN的代码

新建项目的时候选择Get from Version Control
Linux-Ubuntu环境下搭建SVN服务器_第25张图片
选择版本控制工具是svn
Linux-Ubuntu环境下搭建SVN服务器_第26张图片
我这里显示了这个错误
Linux-Ubuntu环境下搭建SVN服务器_第27张图片
原因是没有安装Command命令
Linux-Ubuntu环境下搭建SVN服务器_第28张图片
所以需要重新安装TortoiseSVN
Linux-Ubuntu环境下搭建SVN服务器_第29张图片
勾选Will be installed on local hard drive即可
Linux-Ubuntu环境下搭建SVN服务器_第30张图片
点击刷新之后就可以使用了,这里选择的一定是src的上级目录
Linux-Ubuntu环境下搭建SVN服务器_第31张图片
这里尽量选择第二,也就是有子目录的,方便后续管理
Linux-Ubuntu环境下搭建SVN服务器_第32张图片
点击ok之后,就会对代码进行拉取了

十、SVN项目的提交

界面如下:
Linux-Ubuntu环境下搭建SVN服务器_第33张图片

当我们对项目文件进行修改后,我们需要提交我们的工作内容
此时项目文件名是蓝色的,需要提交至 SVN
Linux-Ubuntu环境下搭建SVN服务器_第34张图片
右边是现在的代码,左边是以前的代码
Linux-Ubuntu环境下搭建SVN服务器_第35张图片
点击Commit即可
现在发现,我查询本地历史报错了
Linux-Ubuntu环境下搭建SVN服务器_第36张图片
报错如下:
Linux-Ubuntu环境下搭建SVN服务器_第37张图片
简单,我只要设置读和写都需要校验用户名和密码即可
更改
/usr/svn/Datastructure/conf/svnserve.conf 文件中anon-access设为none。
Linux-Ubuntu环境下搭建SVN服务器_第38张图片
配置完后整体重启
Linux-Ubuntu环境下搭建SVN服务器_第39张图片
再尝试一下,就ok了
在这里插入图片描述

感谢

感谢博主Wyn_的文章:
参考链接如下:SVN搭建ubuntu服务器过程

你可能感兴趣的:(linux,linux,服务器,ubuntu)