Subversion est construit sur une couche de portabilité appelée APR (« Apache Portable Runtime » en anglais, pour bibliothèque Apache de portabilité des exécutables). Cette bibliothèque APR fournit toutes les interfaces dont Subversion a besoin pour fonctionner sur différents systèmes d'exploitation : accès aux disques, au réseau, gestion de la mémoire, et bien d'autres choses encore. Bien que Subversion soit capable d'utiliser Apache comme serveur réseau, la dépendance envers APR ne signifie pas qu'Apache soit un composant indispensable. APR est une bibliothèque autonome, utilisable par n'importe quelle application. Cela signifie en revanche que, tout comme Apache, les clients et serveurs Subversion fonctionnent sur n'importe quel système d'exploitation sur lequel fonctionne le serveur Apache httpd : Windows, Linux, tous les systèmes BSD, Mac OS X, NetWare entre autres.
La manière la plus simple d'obtenir Subversion est de télécharger un programme précompilé pour votre système d'exploitation. Le site Web de Subversion (http://subversion.tigris.org) tient à disposition de nombreux paquets produits par des volontaires. Le site contient généralement des exécutables avec une interface graphique d'installation pour les utilisateurs de systèmes Microsoft. Si votre système d'exploitation est de type Unix, vous pouvez utiliser le gestionnaire de paquets fourni avec votre distribution (RPM, DEB, l'arbre des ports, etc.) pour obtenir Subversion.
Sinon, vous pouvez aussi compiler Subversion directement
à partir des sources, bien que ce ne soit pas toujours facile
(si vous n'avez pas l'habitude de compiler vos logiciels,
choisissez plutôt de télécharger un paquet précompilé pour votre
distribution). Sur le site Web de Subversion, téléchargez la
dernière version du code source. Puis, après l'avoir décompacté,
suivez les instructions fournies dans le fichier
INSTALL
pour la compilation. Notez que le
fichier contenant le code source n'inclut pas forcément tout
ce dont vous avez besoin pour construire un client en ligne de
commande apte à communiquer avec un dépôt distant. Depuis
Subversion 1.4, les bibliothèques dont dépend Subversion (apr,
apr-util et neon) sont distribuées dans un paquet source distinct
suffixé par-deps
. Ces bibliothèques sont
maintenant tellement courantes qu'elles sont peut-être déjà
installées sur votre système. Sinon, vous devrez décompacter
le paquet des dépendances à l'endroit où vous avez décompacté
le code source de Subversion. Indépendamment de ces paquets
obligatoires, vous voudrez peut-être également installer d'autres
bibliothèques optionnelles telles que Berkeley DB et Apache
httpd. Si vous voulez effectuer une
compilation complète, assurez-vous bien d'avoir l'ensemble des
paquets documentés dans le fichier INSTALL
.
Si vous êtes de ceux qui aiment avoir la toute dernière version des logiciels, vous pouvez aussi obtenir le code source de Subversion depuis le dépôt Subversion. Évidemment, il faudra pour y parvenir que vous disposiez déjà d'un client Subversion… Mais, si c'est le cas, vous pouvez extraire une copie de travail du dépôt contenant le code source de Subversion à l'adresse http://svn.collab.net/repos/svn/trunk/ : [61]
$ svn checkout http://svn.collab.net/repos/svn/trunk subversion A subversion/HACKING A subversion/INSTALL A subversion/README A subversion/autogen.sh A subversion/build.conf …
La commande précédente crée une copie de travail de la dernière
version (non officielle) du code source de Subversion dans un
sous-répertoire appelé subversion
de votre
répertoire de travail courant. Vous pouvez modifier le dernier
argument à votre convenance. Indépendamment du nom que vous donnez
au répertoire contenant la nouvelle copie de travail, une fois
cette opération terminée, vous aurez à votre disposition le code
source de Subversion. Bien sûr, il vous faudra encore récupérer
quelques autres bibliothèques (apr, apr-util, etc.)—consultez
le fichier INSTALL
dans le répertoire racine
de la copie de travail pour plus de détails.
[61] Notez que l'URL que l'on extrait dans cet exemple ne se
termine pas par svn
, mais par un
sous-répertoire nommé trunk
. Reportez-vous
à notre discussion sur le modèle de gestion des branches de
Subversion pour en comprendre la raison.