Hello, friends. Although Git is the most popular version control system out there, some projects are maintained using Subversion. So, in this post, you will learn how to install Apache Subversion on UBuntu 20.04.
Brief introduction to Apache Subversion
According to the website of this program:
Subversion is an open-source version control system. Founded in 2000 by CollabNet, Inc. the Subversion project and software have seen incredible success over the past decade. Subversion has enjoyed and continues to enjoy widespread adoption in both the open-source arena and the corporate world.
With the advent of Git, it has indeed fallen in use, but it is still important to many developers and projects worldwide. That’s why learning how to install it can be quite useful.
What does Subversion pretend to be? Subversion exists to be universally recognized and adopted as an open-source, centralized version control system characterized by its reliability as a haven for valuable data; the simplicity of its model and usage; and its ability to support the needs of a wide variety of users and projects, from individuals to large-scale enterprise operations.
So now we can get started.
Install Apache Subversion on Ubuntu 20.04
So, before we start, update your entire Linux distribution as follows:
sudo apt update sudo apt upgrade
Then, install Apache and the apache2-utils
package
sudo apt install apache2 apache2-utils
Check the status of the Apache service for any errors
sudo systemctl status apache2 ● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2021-08-12 17:24:56 CEST; 7s ago Docs: https://httpd.apache.org/docs/2.4/ Main PID: 1872 (apache2) Tasks: 55 (limit: 2286) Memory: 5.6M CGroup: /system.slice/apache2.service ├─1872 /usr/sbin/apache2 -k start ├─1873 /usr/sbin/apache2 -k start └─1874 /usr/sbin/apache2 -k start Aug 12 17:24:56 osradar systemd[1]: Starting The Apache HTTP Server... Aug 12 17:24:56 osradar apachectl[1871]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName'>ug 12 17:24:56 osradar systemd[1]: Started The Apache HTTP Server.
If everything is OK, then you can install the modules required by Subversion.
sudo apt install libapache2-mod-svn subversion-tools libsvn-dev Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: libapr1-dev libaprutil1-dev libc-dev-bin libc6-dev libcrypt-dev libexpat1-dev libldap2-dev libsctp-dev libsctp1 libserf-1-1 libsvn1 libutf8proc2 linux-libc-dev subversion uuid-dev Suggested packages: db5.3-util python glibc-doc manpages-dev lksctp-tools libserf-dev libsvn-doc zlib1g-dev ruby-svn svn2cl Recommended packages: manpages-dev default-mta | mail-transport-agent libconfig-inifiles-perl libsvn-perl liburi-perl python-subversion The following NEW packages will be installed: libapache2-mod-svn libapr1-dev libaprutil1-dev libc-dev-bin libc6-dev libcrypt-dev libexpat1-dev libldap2-dev libsctp-dev libsctp1 libserf-1-1 libsvn-dev libsvn1 libutf8proc2 linux-libc-dev subversion subversion-tools uuid-dev 0 upgraded, 18 newly installed, 0 to remove and 29 not upgraded. Need to get 9,473 kB of archives. After this operation, 63.0 MB of additional disk space will be used. Do you want to continue? [Y/n]
And then Subversion itself:
sudo apt install subversion
After that, enable the apache modules for Subversion
sudo a2enmod dav sudo a2enmod dav_svn
In my case, they were already enabled, but better be sure.
Configuring Subversion for the first use
Subversion is already installed and running, but it is convenient to make some previous configurations.
The first thing to do is to create a username and password to secure access from the web.
To do this, run the following command:
sudo htpasswd -cm /etc/apache2/dav_svn.passwd admin New password: Re-type new password: Adding password for user admin
You can replace admin
with any username you want. The above command will prompt for the password of this new user.
Apply the changes by restarting Apache
sudo systemctl restart apache2
Now, you have to modify the configuration file of one of the Subversion modules for Apache
sudo nano /etc/apache2/mods-enabled/dav_svn.conf
And replace the content with the following:
Alias /svn /var/www/svn <Location /svn> DAV svn SVNParentPath /var/www/svn AuthType Basic AuthName "Subversion Repository" AuthUserFile /etc/apache2/dav_svn.passwd Require valid-user </Location>
Note: It is advisable then, to make a backup before
Save the changes and close the editor.
Now create a new folder for Subversion projects.
sudo mkdir /var/www/svn
Next, it is necessary to initialize the Subversion project.
sudo sudo svnadmin create /var/www/svn/[project-name]
Remember that you have to replace [project-name]
with the name of your project as this will generate a folder.
Make Apache the owner of the project folder.
sudo chown -R www-data:www-data /var/www/svn
And assign the correct permissions:
sudo chmod -R 775 /var/www/svn
Now yes, you can see the change from apache and a web browser at the address http://ip-server/svn/project
, and from now on you can work with Subversion.
Conclusion
Git is the clear market dominator but Subversion is a useful tool that adapts to other needs. So it is always convenient to know how to install it.