Ubuntu 20.04 server 搭建SVN版本控制系统

 提示:本文的系统环境是:ubuntu-22.04.1-live-server-amd64,不同的系统、不同的系统版本号安装方式可能有些地方有差异;

一、检查是否已安装

svnserve --version

如果系统安装过了,则先卸载

sudo apt-get remove --purge subversion

二、安装SVN

安装前先更新一下系统

sudo apt-get update

安装subversion

sudo apt-get install subversion

创建仓库文件夹

sudo mkdir -p /home/svn   # 以/home/svn为仓库地址,仓库地址的路径可以自己改过
sudo chmod -R 777 /home/svn   # 更改权限 ,如果用root用户访问的话可以不用改

创建版本库

svnadmin create /home/svn/repos   

备注:1、 创建版本库repos,repos为版本库名字

            2、版本库跟访问路径有关,这里填的是名字要和访问路径要对应,

                 如:svn://ip地址/repos

完成后会在repos文件夹下生成以下文件

authz
hooks-env.tmpl
passwd
svnserve.conf

然后对db进行权限设置

cd /home/svn/repos 
chmod -R 777 db

三、SVN配置

设置访问权限:需要对conf文件夹下的文件进行修改

vim conf/svnserve.conf


简单的修改几处配置:

        #匿名用户可读anon-access = read(建议改为none,即不可读)

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

        #密码文件为password-db = passwd

        #权限文件为authzauthz-db = authz
注意:去掉前面的#,并且顶格,不然可能会报错

修改passwd文件,添加访问用户

vim conf/passwd

[users]
# harry = harryssecret
# sally = sallyssecret
xiaoming = 123456

wang = 123456

修改authz权限

[groups]
admin = xiaoming        #管理员用户,拥有最高的读写权限

normal = wang            #普通用户,仅拥有读权限
[/]                                 # / 代表所有项目,即不同的仓库都具有权限共通性
@admin = rw

@normal = r

 这个部分的说明

上面的  [/] 表示对根目录进行授权,即用户组成员对所有项目都具有权限共通性,我们如果要针对不同项目去设置不同权限,可以如下操作

[JAVA:/]

Heath = rw  //表示用户 Heath 对项目 JAVA 的所有内容具有读写权限

Liu = r  //表示用户 Liu 对项目 JAVA 的所有内容仅具有读权限

[Python:/]

Ming = rw  //表示用户 Ming 对项目 Python 的所有内容具有读写权限

Tao = r  //表示用户 Tao 对项目 Python 的所有内容仅具有读权限

上面这种做法可以保证Heath仅拥有JAVA项目的读写权限,没有Python项目的权限,保证项目组成员之间的信息安全和项目安全,也便于项目组成员之间的管理。

四、启动SVN

svnserve  -d  -r  /home/svn

备注:1、不要这样启动 svnserve -d -r /home/svn/repos

           2、启动SVN服务器,这里说明下: -d:表示在后台运行   -r:指定服务器的根目录

五、关闭SVN

killall svnserve

六、访问SVN

svn://ip地址/repos

svn默认使用端口3690

 检查svnserve是否已经运行

ps aux | grep svnserve

 七、测试SVN

 拷贝仓库:

svn co svn://192.168.6.221:3690/repos --username xiaoming --password 123456

checkout:

svn checkout svn://192.168.6.221:3690/repos

 访问失败原因分析:

1、检查配置是否正确
2、3690端口是否开放
3、访问路径是否正确

 检查端口

查看网络防火墙3690端口开放
firewall-cmd  --list-all

3690端口是没有对外开放的,执行下面命令开启
firewall-cmd --zone=public --add-port=3690/tcp --permanent

重新加载防火墙,这一步很重要,不然添加的端口会不生效
firewall-cmd --reload

为了保护服务器主机安全,建议开启防火墙

 八、配置系统自动启动SVN

ubuntu操作系统重启后,都要手动去启动svnserve,我们可以手动把它加进操作系统启动的列表。


添加启动脚本/etc/init.d/subversion.sh 内容如下

#!/bin/bash
svnserve -d -r /home/svn/repos  --log-file=/home/svn/svn.log
exit 0

修改脚本文件的属性

chmod 755 /etc/init.d/subversion.sh

使用下面命令把脚本连接到启动目录

ln -s /etc/init.d/subversion /etc/rc3.d/S03subversion
ln -s /etc/init.d/subversion /etc/rc4.d/S03subversion
ln -s /etc/init.d/subversion /etc/rc5.d/S03subversion

结果如下:


这样操作系统重启后,svnserve服务就会自动启动

猜你喜欢

转载自blog.csdn.net/weixin_43824829/article/details/127637638