如何在Ubuntu 18.04 LTS上安装Apache Subversion

时间:2020-02-23 14:38:49  来源:igfitidea点击:

Apache Subversion(常见为SVN)是一个非常流行的开源版本控制系统。
一个版本控制系统允许我们在一段时间内记录到文件或者一组文件中的更改,以便在需要时调用特定版本。

为了为项目进行版本控制,我们首先需要在Ubuntu计算机上安装SVN服务器。

在Ubuntu 18.04 LTS上安装SVN服务器

其中我们将在Ubuntu 18.04 LT上安装和配置Apache Subversion。

步骤1.安装apache

在我们继续安装之前,让我们首先更新存储库。

sudo apt-get update
sudo apt-get install apache2

检查Apache状态。

sudo systemctl status apache2

如果尚未启动服务,则.Start Apache。

sudo systemctl start apache2

启用系统启动时的Apache。

sudo systemctl enable apache2

只需打开Web浏览器和类型Web Server IP或者HostName.if,我们可以看到Apache默认页面,Apache安装成功。

步骤2.安装Apache Subversion

安装Subversion和所需的包

sudo apt-get install subversion libapache2-mod-svn

安装后,它会自动启用所需的SVN模块(DAV_MODULE,DAV_SVN_MODULE,AUTHZ_SVN_MODULE)。

列出已启用的模块

sudo apachectl -M

如果未启用SVN模块。
将下面的命令命令并启用它

sudo a2enmod dav
sudo a2enmod dav_svn
sudo a2enmod authz_svn

启用模块后,我们需要重新启动Apache服务。

sudo service apache2 restart

步骤3.配置Apache Subversion

现在我们将创建SVN存储库。
其中我们使用"/opt"目录来创建我们的存储库。

创建SVN目录。

sudo mkdir -p  /opt/svn

创建SVN存储库。
其中我们创建一个名为"theitroadRepo"的存储库

sudo svnadmin create /opt/svn/theitroadrepo

更改存储库的所有权。

sudo chown -R www-data:www-data /opt/svn/theitroadrepo/

更改存储库的权限。

sudo chmod -R 775/opt/svn/theitroadrepo

添加subversion用户。
其中我们在"/etc"目录中的密码文件。

sudo htpasswd -cm /etc/svn-auth-users  theitroad

创建第二个用户。

sudo htpasswd -m /etc/svn-auth-users theitroad2

为svnin创建Apachevirtual主机文件,以便执行此操作,我们首先需要将目录更改为"/etc/apache2/sites-可用/"

cd /etc/apache2/sites-available/

创建虚拟主机文件,在此处创建一个名为"theitroadsvn.conf"的文件。

sudo vim theitroadsvn.conf

将以下行添加到文件中。

<VirtualHost *:80>
        ServerName svn.theitroad.com
        ServerAlias svn.theitroad.com
        <Location /svn>
     DAV svn
     SVNParentPath /opt/svn
     AuthType Basic
     AuthName "Subversion Repository"
     AuthUserFile /etc/svn-auth-users
     Require valid-user
</Location>
    ErrorLog ${APACHE_LOG_DIR}/svn.theitroad.com-error.log
    CustomLog ${APACHE_LOG_DIR}/svn.theitroad.com-access.log combined
</VirtualHost>

将"svn.theitroad.com"更改为主机名。

保存并退出文件。

禁用默认虚拟主机文件。

sudo a2dissite 000-default.conf

启用新创建的虚拟主机文件。

sudo a2ensite theitroadsvn.conf

检查Apache语法。

sudo apachectl -t

然后重新启动Apache。

sudo systemctl restart apache2

步骤4.测试已配置的Apache Subversion

打开Web浏览器并执行Repo URL并按Enter键。

http://svn.theitroad.com/svn/theitroadrepo/

用主机名替换sv.theitroad.com。

当我们将获得"身份验证"屏幕时,请输入已创建的用户名和密码以访问SVN存储库。

现在,我们可以看到创建的存储库。

现在让我们在存储库中创建一个名为"rnd_works"的项目。

svn mkdir file:///opt/svn/theitroadrepo/RnD_works -m "added RnD_works repository"
svn mkdir file:///opt/svn/theitroadrepo/RnD_works/trunk -m "added RnD_works trunk repository"
svn mkdir file:///opt/svn/theitroadrepo/RnD_works/branches -m "added RnD_works branches repository"
svn mkdir file:///opt/svn/theitroadrepo/RnD_works/tags -m "added RnD_works tags repository"

让我们检查是否可以在存储库中查看此新项目。

单击并打开"rnd_works"

如果要删除创建的项目,则可以使用以下命令删除它。

svn delete file:///opt/svn/theitroadrepo/RnD_works -m "delete RnD_works repository"

步骤5.计划存储库备份

创建备份文件。

sudo mkdir -p /etc/backcups

将用户更改为root用户。

sudo su 

编辑crontab。

crontab -e

在以下命令中,我们每天安排SVN备份午夜。

0 0 * * * svnadmin dump /opt/svn/theitroadrepo > /etc/backcups/svnbackups-$(date +%Y%m%d).dump

Cronjob.

然后保存并退出。

步骤6.还原存储库

如果我们需要从备份文件中还原SVN存储库下面的命令。

创建一个新的存储库。

svnadmin create /opt/svn/restorerepo

恢复备份:

svnadmin load /opt/svn/restorerepo < /etc/backups/svnbackups-20190204.dump