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 :

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.
| 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é.
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
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.
- Installer SVN sur Ubuntu : le paquet Subversion, le dépôt et le port 3690 - 15 août 2026
- CSR, SSR ou SSG : quel frontend haute performance choisir selon le rendu, le bundle et l’hydratation ? - 14 août 2026
- Firefox, Chromium, Brave et Tor Browser sur Linux : choisir selon la RAM, les extensions et la vie privée - 14 août 2026




