在 Ubuntu 20.04|18.04|16.04 和 Debian 10|9 上安装 SVN 服务器
在这篇博文中,我们将了解如何在 Ubuntu 20.04|18.04|16.04 和 Debian 10|9 上安装 SVN 服务器。 Apache Subversion (SVN) 是一种流行的开源软件版本控制和修订控制系统,根据 Apache 许可证发布。软件开发人员使用 SVN 来维护源代码、文档、网页等的历史和当前版本。
多年来,Subversion 在企业和开源领域得到了广泛采用。
步骤1:在Ubuntu/Debian上安装SVN服务器
SVN Server 需要 Apache Web 服务器,可以通过运行以下命令安装:
sudo apt update
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 配置文件并进行类似于以下的更改:
sudo tee /etc/apache2/mods-enabled/dav_svn.conf<<EOF
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>
EOF
检查配置语法
$ sudo apachectl -t
Syntax OK
然后重新启动 apache2 服务:
sudo systemctl restart apache2
步骤2:创建SVN用户
我们在 SVN Apache 配置文件中指定用户身份验证信息保存在 /etc/apache2/dav_svn.passwd
上。让我们创建 admin Subversion 用户。
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/
使用命令 svnadmin
Subversion 存储库管理工具创建存储库。
sudo svnadmin create /var/lib/svn/<repo-name>
例如
sudo svnadmin create /var/lib/svn/repo1
这将创建一个名为 payment-gateway
的新存储库,其树结构如下。
$ tree /var/lib/svn/repo1
/var/lib/svn/repo1
|-- 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界面:
http://server_ip_or_hostname/svn/<reponame>
# For me this will be http://server_ip_or_hostname/svn/repo1
使用创建的用户名和密码登录。
您已完成在 Ubuntu 18.04/Debian 9 上安装 SVN 服务器的步骤。查看 Apache Subversion 文档以了解有关如何使用 SVN 的更多信息。
如果您需要基于 Git 的产品,请检查:
如何在Ubuntu上安装Gogs Git服务
在 CentOS/Fedora 上安装 Gitlab CE