Ubuntu18.04 环境搭建——SVN

1. 安装部署

sudo apt-get install subversion subversion-tools  # 安装软件
sudo mkdir -p /home/svn                           # 创建工作目录
sudo mkdir -p /home/svn/workspace                 # 创建版本库
sudo svnadmin create /home/svn/workspace          # 初始化版本库
sudo svnserve -d -r /home/svn                     # 启动服务
killall svnserve                                  # 停止服务

默认情况下,SVN 使用原生协议连接版本库,访问地址为 svn://ip:port/repo

  • 工作目录:SVN 服务管理的基本单元,一个工作目录下可以创建多个版本库;
  • 版本库:SVN 版本管理的基本单元,通常对应一个项目。

2. 基础配置

版本库初始化时,自动在 ./conf 目录下生成配置文件,主要有:svnserve.conf、zuthz 和 passwd。

svnserve.conf 用于存储版本库配置信息,需要修改的部分如下:

[general]
anon-access = none              # 禁止匿名访问
auth-access = write             # 授权访问权限
password-db = /home/svn/passwd  # 用户配置文件存放位置
authz-db = /home/svn/authz      # 权限配置文件存放位置

passwd 用于存储用户名及口令信息,配置格式为 用户名 = 密码,例如:

moonspirit = moonspirit
guest = 123456

authz 用于存储用户组及权限信息,分为 [groups][repo_name:/] 两个配置段:

  • [groups] 配置用户组信息,格式为 组名 = 用户A,用户B
  • [repo_name:/] 配置目录访问权限,格式为 @组名 = r/w/rw,例如:
[groups]  
g_manager = moonspirit  
g_guest = guest

[workspace:/]  
@g_manager = rw  
@g_guest = r  
* =

passwdauthz 既可以在各版本库下单独配置,也可以在工作目录下统一配置,它们的位置在 svnserve.conf 中指定。

3. 支持 http 访问

通过 Apache 与 SVN 集成,支持通过 http 访问版本库,这样做的好处有:

  • 可以直接通过浏览器访问版本库,而不必借助 Tortoise 等工具;
  • 基于密文的访问控制,而不是简单的明文密码。

3.1 前期准备

sudo apt-get install apache2-utils libapache2-mod-svn  # 安装 SVN 模块
sudo chown -R www-data:www-data /home/svn/             # 授权 Apache 访问工作目录

3.2 配置虚拟主机

修改 /etc/apache2/mods-available/dav_svn.conf,配置 apache-svn 模块:

<Location /svn>
     DAV svn
     SVNParentPath /opt/svn
     AuthType Basic
     AuthName "Subversion Repository"
     AuthUserFile /etc/apache2/dav_svn.passwd
     AuthzSVNAccessFile /etc/apache2/dav_svn.authz
     Require valid-user
</Location>

修改 /etc/apache2/apache2.conf,赋予 /home/svn 工作目录访问权限:

<Directory /home/svn> 
        AllowOverride None
        Require all granted
</Directory>

3.3 配置用户

sudo htpasswd -bc /etc/apache2/dav_svn.passwd username password  # 创建密码文件并新增用户(覆盖原文件)
sudo htpasswd -b /etc/apache2/dav_svn.passwd username password   # 添加用户

4. 开机自启动

/etc/systemd/system/ 目录下创建服务单元文件,内容如下:

[Unit]
Description=Subversion Server
[Service]
Type=forking
ExecStart=/usr/bin/svnserve --daemon --root /software/svn
ExecStop=/usr/bin/killall svnserve
Restart=always
[Install]
WantedBy=default.target

systemctl 基本用法:

sudo systemctl daemon-reload  # 加载新的服务单元
sudo systemctl status svn     # 查看运行状态
sudo systemctl start svn      # 启动服务
sudo systemctl stop svn       # 停止服务
sudo systemctl restart svn    # 重启服务
sudo systemctl reload svn     # 重新加载配置文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值