Apportez votre aide…
Ceci est une ancienne révision du document !
Mise en place d'un serveur CVS
Résumé
Cette page se propose de vous montrer comment installer un serveur CVS, opération qui parait simple une fois faite, mais qui a priori n'est pas si évidente.
Introduction
CVS est un concept qui permet à un ensemble de développeurs de développer sur un même projet, sans se préocuper de l'archivage ni même des modifications concurrentes (deux personnes sur le même fichier). Le principe étant assez complexe, je ne vais pas vous en détailler le fonctionnement et je vous renvoie chez google qui fait ça très bien.
Prérequis
Avoir un système linux fonctionel. Tout est décrit à partir d'une distribution ubuntu mais fonctionne sur toutes les distributions pour peu qu'on adapte certaines choses (comme la récupération et l'installation des paquets …). Mais si vous êtes sous ubuntu, suivez le guide.
Attention : Plus loin j'utilise /mon/chemin/cvs qui n'est pas un vrai répertoire et qui doit être accomodé à vos besoins…
Installation
Dans un premier temps, installons deux choses : CVS (la raison parait assez évidente) et xinetd qui va nous permettre d'accepter les connexions venant de l'extérieur. Je considère que si vous installez un serveur CVS, vous êtes un minimum à l'aise avec le mode console ; dans le cas contraire, faites des copier-coller, ça ira aussi.
Pour Hardy Heron et supérieure
sudo apt-get install cvs
Versions antérieure
sudo apt-get install cvs xinetd
Configuration
Utilisateurs et groupes
Nous allons créer un groupe cvs ainsi que les utilisateurs qui y sont associés.
sudo groupadd cvs sudo useradd -m -g cvs -s /sbin/nologin cvs sudo useradd -m -g cvs -s /sbin/nologin anonymous
Ces lignes vous permettent d'ajouter des utilisateurs associés directement au groupe cvs et sans login, c'est à dire que l'utilisateur ne peut se logger en faisant su anonymous par exemple… Ajoutez de cette manière tous les utilisateurs que vous voulez. Il faut ensuite modifier un fichier de cette façon :
gksudo gedit /etc/group #ou pour les barbus sudo vigr
modifiez la ligne contenant cvs: (tout en bas normalement) pour quelle soit comme ceci :
cvs:x:501:cvs,anonymous,monUser1,...
et ajoutez tous vos utilisateurs
Répertoires
Il faut que le cvs puisse déposer tous ses fichiers quelque part. Nous allons donc lui indiquer où…
Pour l'installation, nous allons utiliser le compte root, afin que vous puissiez placer où vous désirez votre dossier root de cvs. ( Par exemple, /home/rootcvs ).
sudo su - password export CVSROOT=/mon/chemin/cvs mkdir $CVSROOT
xinetd pour Ubuntu antérieure à Hardy Heron
Nous allons maintenant configurer xinetd afin qu'il fasse le relais entre la couche réseau et le serveur CVS en lui même. Pour cela, lancez la commande
gedit /etc/xinetd.d/cvspserver
et indiquez dans le fichier nouvellement créé :
service cvspserver { port = 2401 socket_type = stream protocol = tcp wait = no user = root passenv = PATH server = /usr/bin/cvs server_args = -f --allow-root=/mon/chemin/cvs pserver }
Ces lignes permettent à xinetd d'associer une connexion entrante, à un serveur local. Dans ce cas la connexion se fait sur le port 2401 en mode TCP et le programme que xinetd appelera se trouve dans /usr/bin/cvs. server_args définit les paramètres qui seront passés à la commande serveur. Les autres paramètres définissent des options de connexion, pour plus d'information je vous suggère cette page qui en parles longuement.
Note : Il est possible d’autoriser l’accès à plusieurs repositories, il suffit pour cela de répéter autant de fois que nécessaire l’option –allow-root.
Attention : L'option –allow-root doit absolument pointer vers le dossier créé dans le paragraphe précédent.
Attention bis : Si vous utilisez une autre distribution que Ubuntu, server doit pointer vers l'endroit où est placée votre commande CVS.
Pour que ces paramètres soient pris en compte il suffit de redémarer le service de cette manière :
/etc/init.d/xinetd restart
openbsd-inetd pour Ubuntu Hardy Heron et supérieure
Depuis Ubuntu Hardy Heron, xinetd et inetd sont remplacé par openbsd-inetd.
Voici la commande pour installer le paquet gérant openbsd-inetd :
sudo apt-get install telnetd
Voici comment configurer le service :
Dans un premier temps, nous allons définir le port à utiliser :
sudo gedit /etc/services
monUser1:G2pCH9aRwVhjI:cvs anonymous::cvs
L'utilisateur anonyme peut, quant à lui, ne pas avoir de mot de passe (laissez vide le champ réservé au mot de passe pour ne pas le définir). Il est alors important qu'il ne puisse pas modifier le cvs. Pour cela, sauvegardez et fermez le fichier de mots de passe. Faites
gksudo gedit $CVSROOT/CVSROOT/readers
et indiquez simplement:
anonymous
Dernière chose, si vous désirez renseigner la variable CVSROOT au démarrage, il vous suffit de modifier le fichier .bashrc de votre compte et d'y ajouter l'export dedans :
gedit ~/.bashrc
Et ajouter :
# CVS ROOT DIR export CVSROOT=/chemin/vers/cvs
===== Conclusion =====
Si vous avez suivi intégralement ce tutoriel, vous avez un serveur cvs opérationel. Il vous suffit de vous y connecter de cette manière :
# sur une autre machine export CVSROOT=:pserver:monUser1@adresse-ip-machine-1:/mon/chemin/cvs cvs login
Pour une utilisation de CVS, je vous recommande d'utiliser google qui propose des tutoriaux par centaines à ce sujet.
===== Méthode alternative =====
Après avoir testé sans succès la méthode décrite ci dessus, j'ai testé la méthode suivante qui a fonctionnée :
Installation de CVS :
sudo apt-get install cvs
Installation/configuration du serveur :
sudo apt-get install cvsd
Entrer "/cvsroot" lorsque l'assistant vous demande un chemin.
Configurations :
cd /var/lib/cvsd and build the cvsroot: sudo cvsd-buildroot /var/lib/cvsd sudo mkdir cvsroot sudo cvs -d /var/lib/cvsd/cvsroot init sudo chown -R cvsd:cvsd cvsroot
Création d'un utilisateur :
sudo cvsd-passwd /var/lib/cvsd/cvsroot +justin
Changement du type d'authentification :
sudo vi /var/lib/cvsd/cvsroot/CVSROOT/config uncomment the “SystemAuto=no” line.
Pour tester la connexion au serveur cvs :
cvs -d :pserver:justin@localhost:/cvsroot login
Méthode tirée de :
Contributeur : PiTiLeZarD - Fortement inspiré de ce HowTo mais pas une traduction exacte., zedtux
- cvs_server.1249541054.txt.gz
- Dernière modification: Le 18/04/2011, 14:57
- (modification externe)