Mise en place d'un dépôt CVS
Par Pierre le dimanche 24 octobre 2004, 17:30 - Linux - Lien permanent
Afin de développer mon site perso, j'ai mis en place un dépôt CVS sur le serveur, j'y accède via le réseau à travers le protocole pserver.
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 :
Commentaires
je viens plotut pour une requette et non un commentaire en tant que tel et j'espère que celà ne paraitra pas très désagréable. je voudrais savoir comment faire pour supprimer une installation CVS? j'ai essayé de l'installer mais ça pas marché et puisque je sais d'avance que j'ai tout cafouillé je voudrais maintenant m'en débarasser. alors si quelqu'un peu me dire comment faire, je vous en prie n'ésiter sourtout pas merci!