Installer SVN sur Ubuntu : le paquet Subversion, le port 3690 et les erreurs à éviter

Pour installer SVN sur Ubuntu, le paquet à utiliser n’est pas svn, mais subversion. C’est souvent là que la commande bloque dès le départ. Une fois installé, SVN peut servir de simple client pour récupérer un dépôt, ou de base pour un serveur accessible en local via svn://, ou via Apache avec http:// et dav_svn.

Installer SVN sur Ubuntu sans se tromper de paquet

La méthode la plus fiable consiste à mettre à jour l’index des paquets, puis à installer Subversion. En terminal, lancez sudo apt update, puis sudo apt install subversion. Si vous avez l’habitude d’apt-get, la variante sudo apt-get install subversion fonctionne aussi.

SVN sur Ubuntu : Quiz

Si vous essayez sudo apt-get install svn et que vous obtenez une erreur du type Unable to locate package svn, le problème est simple : svn est la commande, subversion est le paquet. Après l’installation, vérifiez que le client répond bien avec svn –version. La commande doit afficher la version et les modules d’accès disponibles.

Client SVN ou serveur SVN : ce que vous installez vraiment

Le paquet subversion installe les outils nécessaires pour utiliser SVN côté client, notamment la commande svn. Cela suffit pour faire un checkout, consulter l’historique, mettre à jour une copie de travail ou envoyer des modifications vers un dépôt déjà existant.

Si vous voulez héberger vos propres dépôts, vous aurez aussi besoin des outils fournis autour de Subversion, comme svnadmin pour créer un dépôt et svnserve pour le rendre accessible sur le réseau. Pour une publication via Apache, il faut ajouter Apache2 et le module dav_svn.

Besoin Éléments principaux Accès typique
Utiliser SVN comme client Paquet subversion svn checkout, svn update, svn commit
Créer un serveur SVN simple svnadmin et svnserve svn://serveur/depot
Servir SVN avec Apache Apache2, dav_svn, htpasswd http:// ou https://

Créer un dépôt SVN local puis le rendre accessible

Un dépôt SVN, ou repository, contient l’historique, les branches, les tags et les fichiers versionnés. Sur Ubuntu, un emplacement courant consiste à créer un répertoire dédié, par exemple /var/svn. Créez-le avec : sudo mkdir -p /var/svn.

Vous pouvez ensuite créer un dépôt nommé projet1 avec : sudo svnadmin create /var/svn/projet1. Cette commande génère l’arborescence interne du dépôt, dont les fichiers de configuration situés dans /var/svn/projet1/conf. À ce stade, le dépôt existe, mais il n’est pas encore forcément accessible à distance.

Lancer svnserve sur le port 3690

Pour servir les dépôts avec le protocole natif SVN, lancez le démon avec : sudo svnserve -d -r /var/svn. L’option -d démarre svnserve en mode démon, tandis que -r /var/svn définit la racine exposée. Avec cette racine, le dépôt /var/svn/projet1 devient accessible via une URL de type svn://adresse-du-serveur/projet1.

Par défaut, svnserve utilise le port 3690. Si l’accès échoue depuis une autre machine, vérifiez que le serveur écoute bien, que le pare-feu autorise ce port et que vous utilisez la bonne racine dans la commande svnserve -d -r. Une erreur fréquente consiste à lancer le serveur sur /var/svn/projet1, puis à tenter d’accéder à svn://serveur/projet1, ce qui crée un décalage de chemin.

Tester l’accès au dépôt

Depuis le serveur lui-même ou depuis un poste client, testez un checkout avec : svn checkout svn://adresse-du-serveur/projet1. Si le dépôt est vide, SVN peut tout de même créer une copie de travail. Pour organiser un projet classique, vous pouvez ensuite ajouter les dossiers trunk, branches et tags, selon la structure retenue par l’équipe.

Configurer svnserve : accès anonymes, utilisateurs et mots de passe

La configuration minimale de svnserve se trouve dans le fichier conf/svnserve.conf du dépôt. C’est ici que vous décidez si les utilisateurs anonymes peuvent lire le dépôt, si les utilisateurs authentifiés peuvent écrire, et quel fichier contient les mots de passe. La logique est simple : un dépôt peut rester ouvert en lecture, ou demander une authentification pour toute action sensible.

Les directives importantes sont anon-access, auth-access, password-db et realm. Par exemple, vous pouvez interdire l’accès anonyme, autoriser l’écriture aux utilisateurs authentifiés et utiliser le fichier passwd avec une configuration du type : anon-access = none, auth-access = write, password-db = passwd. Le fichier conf/passwd contient ensuite les couples utilisateur et mot de passe.

LIRE AUSSI  Nokogiri : le parseur XML sexy de Ruby

Les réglages de configuration doivent rester cohérents entre eux. Si une ligne reste commentée avec #, si le fichier passwd n’est pas lu au bon endroit, ou si le dépôt est lancé depuis une mauvaise racine, l’erreur remonte souvent au moment du test, alors que la cause se trouve dans la configuration locale. Avant d’incriminer le client ou le réseau, relisez svnserve.conf, passwd et les chemins utilisés par le service.

Permissions à surveiller

Les fichiers de configuration et de mots de passe ne doivent pas être exposés inutilement. Retirez les droits en lecture aux autres utilisateurs quand c’est nécessaire, par exemple avec sudo chmod o-r /var/svn/projet1/conf/passwd. Le service doit pouvoir lire ce dont il a besoin, mais les comptes système non concernés ne doivent pas accéder aux mots de passe.

Si vous utilisez un utilisateur système spécifique pour lancer svnserve, vérifiez qu’il peut lire et écrire dans les dépôts concernés. Les erreurs de commit viennent souvent d’un dépôt créé avec sudo, puis servi par un processus qui n’a pas les droits d’écriture sur les fichiers internes.

Choisir entre svnserve et Apache avec dav_svn

Le serveur SVN seul avec svnserve est généralement le plus direct : peu de dépendances, une configuration lisible, un protocole natif et le port 3690. C’est un bon choix pour un réseau interne, une petite équipe ou un serveur technique simple à maintenir. On va droit au but, sans couche supplémentaire.

Apache devient intéressant si vous voulez exposer SVN via HTTP ou HTTPS, centraliser l’authentification, utiliser des règles d’accès proches d’une configuration web, ou intégrer SVN à une installation existante. Dans ce cas, il faut installer Apache2 et activer le module dav_svn. Selon l’organisation retenue, la configuration peut s’appuyer sur SVNPath ou SVNParentPath.

SVNPath ou SVNParentPath : ne pas confondre

SVNPath pointe vers un dépôt précis, par exemple /var/svn/projet1. C’est adapté si une URL Apache doit servir un seul dépôt. SVNParentPath, lui, pointe vers un répertoire qui contient plusieurs dépôts, par exemple /var/svn. Dans ce cas, plusieurs dépôts peuvent être accessibles sous la même racine web, selon leur nom.

Pour l’authentification avec Apache, htpasswd permet de créer un fichier de mots de passe, par exemple /etc/apache2/dav_svn.passwd. Avec une authentification Basic, SSL est nécessaire pour éviter de faire circuler les identifiants dans de mauvaises conditions. Dès que l’accès sort d’un cadre strictement local, il faut donc privilégier HTTPS plutôt que HTTP.

LIRE AUSSI  Créer un Singleton sur iPhone en Cocoa / Objective-C

Dépannage rapide après installation

Si l’installation ou l’accès échoue, avancez par symptôme plutôt que de tout reconfigurer. Pour Unable to locate package svn, installez subversion, pas svn, puis relancez sudo apt update si l’index des paquets est ancien. C’est la vérification la plus rapide quand la première commande ne passe pas.

Si svn –version ne répond pas, le paquet n’est probablement pas installé correctement ou la commande n’est pas dans le chemin courant. Réinstallez avec sudo apt install subversion. Si le checkout via svn:// échoue, vérifiez que svnserve tourne, que le port 3690 est ouvert et que l’URL correspond bien à la racine fournie avec -r.

Si l’authentification refuse un utilisateur, contrôlez svnserve.conf, le fichier passwd, les lignes encore commentées et les permissions. Si Apache renvoie une erreur, vérifiez l’activation de dav_svn, la différence entre SVNPath et SVNParentPath, puis redémarrez Apache après modification. Le plus souvent, l’erreur vient d’un détail de configuration, pas du paquet lui-même.

Pour aller vite, retenez les points essentiels : sudo apt install subversion pour l’installation, svn –version pour la vérification, sudo svnadmin create /var/svn/projet1 pour créer le dépôt, sudo svnserve -d -r /var/svn pour le lancer, puis svn://adresse-du-serveur/projet1 pour le tester. Avec ces étapes, vous disposez d’une base fonctionnelle sur Ubuntu, en client comme en serveur.

É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