如何在Ubuntu 19.04/18.04/16.04和Debian 10/9/8上安装SVN服务器

时间:2020-02-23 14:32:51  来源:igfitidea点击:

在这篇文章中,我们将研究如何在Ubuntu 19.04/18.04/16.04和Debian 9上安装SVN服务器.Apache Subversion(SVN)是一个流行的开源软件版本控制和修订控制系统在Apache许可证下发布。
SVN由软件开发人员使用,以维护源代码,文档,网页的历史和当前版本等

第1步:在 Ubuntu/Debian安装SVN Server

SVN服务器需要Apache Web服务器,可以通过运行命令来安装:

sudo apt -y install apache2 apache2-utils

然后安装apache svn

sudo apt -y install vim tree subversion libsvn-dev libapache2-mod-svn subversion-tools

启用SVN所需的Apache模块

sudo a2enmod dav dav_svn
sudo systemctl restart apache2

编辑SVN Apache配置文件,并更改类似于以下内容:

Alias /svn /var/lib/svn
<Location /svn>
   DAV svn
   SVNParentPath /var/lib/svn
   AuthType Basic
   AuthName "Subversion Repository"
   AuthUserFile /etc/apache2/dav_svn.passwd
   Require valid-user
     
</Location>

检查配置语法

$sudo apachectl -t Syntax
OK

然后重启 apache2服务

sudo systemctl restart apache2

第2步:创建SVN用户

我们在SVN Apache配置文件中指定了用户Aunthentication信息已保存 /etc/apache2/dav_svn.passwd
让我们创建我们的管理子变压器用户。

sudo htpasswd -cm /etc/apache2/dav_svn.passwd admin

提供管理员用户密码:

New password: <ENTER PASSWORD>
Re-type new password:<CONFIRM PASSWORD>
Adding password for user admin

二手选项:

-c : Create a new file.
-m Force MD5 encryption of the password (default).

添加其他用户时,请不要用户-c选项,只需通过-m来修改文件。

sudo htpasswd -m /etc/apache2/dav_svn.passwd user1
sudo htpasswd -m /etc/apache2/dav_svn.passwd user2
sudo htpasswd -m /etc/apache2/dav_svn.passwd user1

步骤3:创建SVN存储库

现在我们已安装SVN,我们需要为其创建一个新的存储库。
我们将把我们的存储库放入/var/lib/svn /目录中。

sudo mkdir -p /var/lib/svn/

使用命令创建存储库 svnadminsubversion存储库管理工具。

sudo svnadmin create /var/lib/svn/<repo-name>

例如

sudo svnadmin create /var/lib/svn/payments-gateway

这将创建一个名为的新存储库 payments-gateway用以下树结构。

$tree /var/lib/svn/payments-gateway
/var/lib/svn/payments-gateway
|-- README.txt
|-- conf
|   |-- authz
|   |-- hooks-env.tmpl
|   |-- passwd
|   `-- svnserve.conf
|-- db
|   |-- current
|   |-- format
|   |-- fs-type
|   |-- fsfs.conf
|   |-- min-unpacked-rev
|   |-- revprops
|   |   `-- 0
|   |       `-- 0
|   |-- revs
|   |   `-- 0
|   |       `-- 0
|   |-- transactions
|   |-- txn-current
|   |-- txn-current-lock
|   |-- txn-protorevs
|   |-- uuid
|   `-- write-lock
|-- format
|-- hooks
|   |-- post-commit.tmpl
|   |-- post-lock.tmpl
|   |-- post-revprop-change.tmpl
|   |-- post-unlock.tmpl
|   |-- pre-commit.tmpl
|   |-- pre-lock.tmpl
|   |-- pre-revprop-change.tmpl
|   |-- pre-unlock.tmpl
|   `-- start-commit.tmpl
`-- locks
    |-- db-logs.lock
    `-- db.lock
10 directories, 28 files

将目录/var/lib/svn的所有者设置为 www-data用户和组。

sudo  chown -R www-data:www-data  /var/lib/svn
sudo chmod -R 775 /var/lib/svn

最后访问SVN Web界面并使用已创建的用户名和密码登录。