Installation des binaires CVS

L'installation sous debian se fait de manière triviale :

apt-get install cvs cvsutils

Création d'un utilisateur dédié

Pour des raisons de sécurité, un utilisateur dédié sera créé. Tous les fichiers et processus créés lui appartiendront.

Création du Home Directory et du répertoire de dépôt des fichiers :

mkdir -p /home/cvs/depot

Création de l'utilisateur

groupadd  cvs
useradd -g cvs -d /home/cvs/ cvs
chown -R cvs:cvs /home/cvs

Un Mot de passe est éventuellement attribué à l'utilisateur cvs si l'on souhaite effectuer une délégation de l'administration du serveur CVS.

Mise en place du dépôt

Pour la suite des opérations, on se connectera avec l'utilisateur cvs créé précédemment.

Inititalisation du dépôt

On définit la variable CVSROOT correspondant au répertoire dans lequel nous allons créer les fichiers

export CVSROOT=/home/cvs/depot

Le dépôt est alors initialisé :

cvs init

on peut alors voir qu'un répertoire CVSROOT (à ne pas confondre avec la variable $CVSROOT) a été créé sous le répertoire /home/cvs/depot. C'est dans ce répertoire qu'est présente toute la configuration du dépôt.

Configuration de l'authentification

Afin de permettre l'authentification des utilisateurs, la configuration va être légèrement modifiée. On va d'ailleurs utiliser les commandes CVS pour modifier le fichier de configuration :

cd /tmp
export CVSROOT=/home/cvs/depot
cvs checkout CVSROOT

Le fichier CVSROOT/config est édité :

la ligne

#SystemAuth=no

est décommentée pour devenir

SystemAuth=no

La modification est alors mise à jour sur le dépôt :

cvs commit
Création des utilisateurs du dépôt

Les utilisateurs du dépôt sont recensés dans un fichier '"passwd'' de la forme :

[utilisateur CVS]:[mot de passe crypté]:[utilisateur unix]

Où :

  • utilisateur cvs correspond au login sur le serveur cvs
  • mot de passe crypté est obtenu à l'aide de la commande htpasswd fournie avec Apache
  • utilisateur unix est en fait le propriétaire des fichiers et des processus (cvs dans notre cas)

Exemple :

On crée l'utilisateur pierre :

le mot de passe crypté est obtenu de la manière suivante :

htpasswd -n pierre
New password:
Re-type new password:
pierre:/DSunBSY9WZsY

la ligne à ajouter dans le fichier $CVSROOT/passwd est donc la suivante :

pierre:/DSunBSY9WZsY:cvs

Configuration du démon xinetd

Les manipulations qui suivent sont à effectuer avec l'utilisateur root. Les processus serveurs CVS seront lancés via le super démon xinetd lors de la connexion de l'utilisateur. Il existe d'autre type de connexions, comme via le protocole SSH (Source Dico du net) par exemple, cependant, l'accès étant actuellement limité au réseau local et fermé à l'extérieur (Internet) cela ne s'avère pas nécessaire. Cela fera néanmoins peut être l'objet d'un prochain billet.

On va ajouter le fichier cvspserver avec le contenu qui suit dans le répertoire /etc/xinetd.d

service cvspserver
{
        socket_type = stream
        protocol = tcp
        wait = no
        user = cvs
        server = /usr/bin/cvs
        server_args = -f --allow-root=/home/cvs/depot pserver
        only_from = 192.168.0.2
}

On s'assurera toutefois que la ligne

includedir /etc/xinetd.d/

est présente dans le fichier /etc/xinetd.conf et on l'y ajoutera le cas échéant.

On vérifie que le démon xinetd écoute bien sur le port d'écoute alloué à CVS (2401)

# netstat -lntp | grep 2401
tcp        0      0 0.0.0.0:2401            0.0.0.0:*               LISTEN      18361/xinetd

Opérations courantes avec CVS

Avant toute chose, il est essentiel de définir la valeur de la variable CVSROOT et de se connecter pour pouvoir travailler :

Pour une connexion via le protocole pserver, celle ci devient :

export CVSROOT=:pserver:pierre@192.168.0.1:/home/cvs/depot
cvs login
Logging in to :pserver:pierre@bretagne:2401/home/cvs/depot
CVS password:

Import d'un répertoire (ou module ) dans le dépôt :

cd /home/user/sources
cvs import -m "Premier import des Sources" Sources Pierre Version1

Téléchargement des sources :

cvs checkout module

Mise à jour des sources :

cvs update

Mise à jour de ses fichiers sur le serveur :

cvs commit

Déconnexion :

cvs logout

WinCVS

Pour une utilisation sous environnement graphique, on peut télécharger l'excellent logiciel libre WinCVS, disponible pour les environnements Win32,MacOS et Linux

Quelques liens...

cet article est une synthèse à ma façon des liens qui suivent :