Installer SVN sur Ubuntu : le paquet Subversion, le dépôt et le port 3690

Pour installer SVN sur Ubuntu, le paquet à installer est subversion. Il fournit la commande svn, la création de dépôts et les outils utiles pour un accès local, avec svnserve ou avec Apache.

Installer le bon paquet Subversion sur Ubuntu

La commande la plus simple consiste à mettre à jour l’index des paquets, puis à installer Subversion depuis les dépôts Ubuntu :

Installer svn ubuntu : schéma des modes d’accès local, svnserve et Apache autour d’un dépôt Subversion
Installer svn ubuntu : schéma des modes d’accès local, svnserve et Apache autour d’un dépôt Subversion

sudo apt update

sudo apt install subversion

Après l’installation, vérifiez que la commande SVN est bien disponible :

svn –version

Si une version s’affiche avec la liste des modules d’accès pris en charge, l’installation est correcte. La confusion vient souvent du nom du paquet. On cherche à installer svn, alors que le paquet Ubuntu s’appelle subversion. Une erreur du type Unable to locate package svn ne veut donc pas forcément dire que SVN est absent. Elle indique surtout que le nom du paquet est incorrect ou que l’index local des paquets n’a pas été actualisé.

Client SVN ou serveur SVN : ne mélangez pas les rôles

Installer subversion suffit déjà pour utiliser SVN côté client, récupérer un dépôt, faire un import ou mettre à jour une copie de travail. En revanche, créer un service accessible par d’autres utilisateurs demande une étape de plus : créer un dépôt avec svnadmin, puis choisir un mode d’accès.

Les commandes courantes côté client sont simples :

  • svn co URL_DU_DEPOT pour récupérer une copie de travail ;
  • svn update pour synchroniser les derniers changements ;
  • svn import dossier URL_DU_DEPOT -m « Premier import » pour envoyer un projet initial dans un dépôt.

Choisir entre accès local, svnserve et Apache

Avant de configurer quoi que ce soit, choisissez l’architecture adaptée. SVN peut fonctionner sur une seule machine, mais il peut aussi servir de dépôt partagé pour une équipe.

LIRE AUSSI  CSR, SSR ou SSG : quel frontend haute performance choisir selon le rendu, le bundle et l’hydratation ?
Mode d’accès URL typique Usage recommandé Point d’attention
Local file:///var/svn/projet1 Tests, usage personnel, dépôt sur la même machine Dépend fortement des permissions système
svnserve svn://serveur/projet1 Serveur SVN léger et dédié Utilise le port 3690 par défaut
Apache avec dav_svn http:// ou https://serveur/svn/projet1 Accès web, authentification centralisée, exposition HTTP HTTPS est nécessaire avec Basic pour protéger les identifiants

Le serveur ne contient pas forcément le projet lui-même. Il gère l’accès, tandis que le dépôt garde l’historique et les révisions. svnserve ou Apache séparent la partie réseau des fichiers du dépôt. Cette distinction évite une erreur fréquente, à savoir corriger l’authentification alors que le vrai blocage vient des droits Unix sur le répertoire du dépôt, ou inversement.

Créer un dépôt SVN proprement

Un dépôt Subversion est un répertoire spécial géré par SVN. Il ne faut pas y copier directement les fichiers du projet comme dans un dossier classique. On le crée avec svnadmin create, puis on y accède avec les commandes SVN.

Créer un répertoire racine pour les dépôts

Une organisation courante consiste à placer les dépôts dans /var/svn. Ce chemin n’est pas obligatoire, mais il reste lisible et pratique pour un serveur.

sudo mkdir -p /var/svn

sudo svnadmin create /var/svn/projet1

Vous pouvez ensuite tester l’accès local :

svn co file:///var/svn/projet1

Si cette commande échoue, regardez d’abord les permissions du système de fichiers. L’utilisateur qui exécute SVN doit pouvoir lire le dépôt, et le service qui l’expose doit avoir les droits nécessaires.

Définir le propriétaire du dépôt

Quand le dépôt est servi par un processus dédié, son propriétaire compte. Avec Apache, l’utilisateur système du serveur web doit pouvoir lire, et souvent écrire, dans le dépôt. Sur Ubuntu, il s’agit souvent de www-data.

sudo chown -R www-data:www-data /var/svn/projet1

Pour un service svnserve lancé avec un utilisateur précis, adaptez le propriétaire à cet utilisateur. Évitez les permissions trop larges, comme une écriture ouverte à tous. Elles masquent les problèmes au lieu de les résoudre et affaiblissent la sécurité.

LIRE AUSSI  Listes chaînées en C : maîtriser l'allocation dynamique et la gestion des pointeurs

Configurer svnserve pour un serveur SVN léger

svnserve est une bonne option si vous voulez un serveur SVN simple, sans Apache. Il écoute par défaut sur le port 3690 et sert les dépôts depuis un répertoire racine.

Lancer svnserve sur /var/svn

Pour démarrer rapidement le service en arrière-plan :

sudo svnserve -d -r /var/svn

Avec cette racine, le dépôt /var/svn/projet1 devient accessible sous une forme comme :

svn co svn://adresse_du_serveur/projet1

L’option -r /var/svn est importante. Elle évite d’exposer le chemin complet du système et définit le point de départ visible côté client.

Gérer utilisateurs et permissions avec svnserve.conf

Chaque dépôt possède un fichier de configuration dans /var/svn/projet1/conf/svnserve.conf. Pour activer une authentification simple, les directives importantes sont généralement :

anon-access = none

auth-access = write

password-db = passwd

Le fichier /var/svn/projet1/conf/passwd contient alors les utilisateurs et mots de passe :

alice = motdepasse

bob = autre_motdepasse

Restreignez la lecture des fichiers sensibles :

sudo chmod o-r /var/svn/projet1/conf/passwd

Pour éviter de relancer manuellement svnserve après chaque redémarrage, vous pouvez automatiser son lancement avec un script d’initialisation dans /etc/init.d/svnserve, avec start-stop-daemon, puis l’activer avec update-rc.d. Le principe reste le même : lancer svnserve -d -r /var/svn au démarrage.

Exposer SVN avec Apache et dav_svn

Apache est pertinent si vous souhaitez publier les dépôts en HTTP ou HTTPS, profiter d’une authentification web et intégrer SVN dans une configuration serveur déjà existante. Il faut installer Apache et le module SVN correspondant, puis activer dav_svn.

Activer le module et déclarer les dépôts

Installez les composants nécessaires :

sudo apt install apache2 libapache2-mod-svn

sudo a2enmod dav

sudo a2enmod dav_svn

La configuration peut se faire dans un fichier Apache dédié ou dans /etc/apache2/mods-enabled/dav_svn.conf. Pour un seul dépôt, utilisez SVNPath :

<Location /svn/projet1>

DAV svn

SVNPath /var/svn/projet1

</Location>

Pour plusieurs dépôts sous une même racine, utilisez plutôt SVNParentPath :

<Location /svn>

DAV svn

SVNParentPath /var/svn

LIRE AUSSI  Firefox, Chromium, Brave et Tor Browser sur Linux : choisir selon la RAM, les extensions et la vie privée

SVNListParentPath On

</Location>

Redémarrez ensuite Apache :

sudo systemctl restart apache2

Sécuriser l’accès avec AuthType Basic

Pour demander un identifiant et un mot de passe, créez un fichier d’utilisateurs avec htpasswd :

sudo htpasswd -c /etc/apache2/dav_svn.passwd alice

Ajoutez ensuite les directives d’authentification dans le bloc Location :

AuthType Basic

AuthName « Depot SVN »

AuthUserFile /etc/apache2/dav_svn.passwd

Require valid-user

Avec AuthType Basic, les identifiants peuvent être exposés si la connexion n’est pas chiffrée. Utilisez HTTPS plutôt que HTTP pour éviter l’interception du mot de passe. Pensez aussi à limiter la lecture du fichier de mots de passe avec des permissions adaptées.

Commandes essentielles après installation

Une fois SVN installé et le dépôt accessible, l’usage quotidien repose sur quelques commandes. Pour récupérer un projet :

svn co svn://serveur/projet1

ou, avec Apache :

svn co https://serveur/svn/projet1

Pour envoyer un projet existant dans un dépôt vide :

svn import mon-projet https://serveur/svn/projet1 -m « Import initial »

Pour mettre à jour une copie de travail :

svn update

Si une commande échoue, vérifiez dans cet ordre : l’URL utilisée, le mode d’accès choisi, le port 3690 pour svnserve, les permissions Unix du dépôt, puis les fichiers d’authentification. Cette méthode évite de modifier plusieurs paramètres à la fois et rend le dépannage plus fiable.

Élise Prévost-Lemercier

Partager cet article

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Retour en haut