$Revision: 1.16 $
$Date: 2004/03/06 18:13:20 $
Ce document explique comment paramétrer un serveur CVS sur un poste Linux utilisant la distribution Debian GNU/Linux 3.0 (alias Woody).
Copyright 2002-2004 Alexandre Ratti. Document diffusé dans les conditions des licences GPL 2 (GNU General Public License) et GFDL 1.2 (GNU Free Documentation License). [Explications]
Dans ce document, le référentiel est installé dans dans
/home/cvs. Le réseau local s'appelle toto.net
; le serveur CVS est accessible à l'adresse cvs.toto.net.
Le référentiel va contenir, entre autres, le site Web www.toto.net.
Les utilisateur qui ont des droits d'écriture dans le référentiel
s'appellent marc et alex.
Sur Debian, en qualité d'administrateur :
apt-get install cvs
Pour reconfigurer un serveur CVS déjà installé :
dpkg-reconfigure cvs
Accepter l'utilisation du serveur pserver. Créer le référentiel
dans /home/cvs.
Par défaut, le serveur cvs est exécuté en qualité
de root. Créer un compte d'utilisateur limité, cvs.
Le pserver CVS sera exécuté sous ce nom. S'assurer qu'il est bien
propriétaire du dossier racine de CVS. Dans la foulée, ajouter
les utilisateurs courants au groupe cvs pour qu'ils puissent accéder
directement au référentiel CVS en local.
mkdir /home/cvs
adduser --no-create-home --disabled-login --system --group cvs
chown -R cvs:cvs /home/cvs
adduser marc cvs
adduser alex cvs
Toujours en qualité d'administrateur, activer le référentiel CVS :
export CVSROOT=/home/cvs
cvs init
Dans /etc/xinetd.conf, ajouter le code ci-dessous en utilisant
les bonnes adresses IP.
service cvspserver
{
id = cvs_network
disable = no
wait = no
protocol = tcp
user = cvs
socket_type = stream
env = "$HOME=/home/cvs"
# bind n'est utile que si la machine contient plusieurs cartes
bind = 192.168.0.2
log_on_failure += USERID
port = 2401
server = /usr/bin/cvs
server_args = -f --allow-root=/home/cvs pserver
only_from = .toto.net
}
Redémarrer xinetd.
/etc/init.d/xinetd restart
Remarque : si vous n'avez pas de fichier /etc/xinetd.conf,
xinetd n'est probablement pas installé sur votre serveur.
C'est le démon inetd qui est installé par défaut
sur Debian Woody. Pour remplacer inetd par xinetd,
tapez apt-get install xinetd.
Ouvrir un terminal sous le nom d'un utilisateur standard, marc
par exemple. Sortir de CVS les fichiers de configuration pour pouvoir les modifier.
Un dossier CVSROOT est créé dans le répertoire
courant.
cd /home/marc
export CVSROOT=/home/cvs
cvs co CVSROOT
cd CVSROOT
Créer le fichier de mots de passe de CVS. Problème : dans le
fichier, les mots de passe doivent être chiffrés, mais CVS ne propose
pas de commande pour le faire. On peut normalement copier le mot de passe chiffré
dans /etc/passwd, mais Debian utilise des mots de passe MD5, plus
longs, qui risquent de ne pas être reconnus.
Format des lignes du fichier de mots de passe :
alex:qsmdlfkqmldk:cvs
marc:modkfjgmldfj:cvs
alex est le nom de l'utilisateur qui se connecte ; cvs
est le nom sous lequel le serveur est exécuté (toujours "cvs",
dans notre cas).
Si Apache est installé sur le poste, on peut utiliser un de ses outils
pour créer le fichier de mot de passe. Dans le dossier CVSROOT
:
htpasswd -c passwd alex
Ensuite, entrer le mot de passe.
Pour actualiser un fichier de mot de passe :
htpasswd passwd marc
Vérifier que cet utilitaire n'a pas supprimé la 3ème colonne
de chaque ligne de mot de passe. Le cas échéant, la rajouter (:cvs).
Si Apache n'est pas installé sur le poste, il faut trouver autre chose. Créer le fichier :
touch passwd
Générer un mot de passe chiffré avec cette formule magique :
perl -e "print crypt('mot_de_passe','az');" >> passwd
Ouvrir le fichier passwd et y corriger les informations.
nano passwd
...
marc:modkfjgmldfj:cvs
Dans la foulée, ouvrir le fichier cvswrappers et y ajouter
les lignes ci-dessous. Elles permettent de déclarer quels fichiers sont
binaires, pour que CVS ne les abîme pas à l'importation.
*.avi -k 'b' -m 'COPY'
*.doc -k 'b' -m 'COPY'
*.exe -k 'b' -m 'COPY'
*.gif -k 'b' -m 'COPY'
*.gz -k 'b' -m 'COPY'
*.hqx -k 'b' -m 'COPY'
*.jar -k 'b' -m 'COPY'
*.jpeg -k 'b' -m 'COPY'
*.jpg -k 'b' -m 'COPY'
*.mov -k 'b' -m 'COPY'
*.mpg -k 'b' -m 'COPY'
*.pdf -k 'b' -m 'COPY'
*.png -k 'b' -m 'COPY'
*.ppt -k 'b' -m 'COPY'
*.sit -k 'b' -m 'COPY'
*.swf -k 'b' -m 'COPY'
*.tar -k 'b' -m 'COPY'
*.tgz -k 'b' -m 'COPY'
*.tif -k 'b' -m 'COPY'
*.tiff -k 'b' -m 'COPY'
*.xbm -k 'b' -m 'COPY'
*.xls -k 'b' -m 'COPY'
*.zip -k 'b' -m 'COPY'
*.ogg -k 'b' -m 'COPY'
*.mp3 -k 'b' -m 'COPY'
Maintenant, réimporter les fichiers modifiés dans CVS. D'abord, déclarer le fichier qui a été créé :
cvs add passwd
Puis demander à CVS de comparer le répertoire local avec le référentiel. Il doit énumérer les fichiers ajoutés/modifiés.
cvs update
Ensuite, valider les modifs.
cvs commit
Toujours dans le même dossier, éditer le fichier checkoutlist
et y ajouter la ligne
passwd
en fin de fichier. Objectif : déclarer que le fichier passwd
qui vient d'être créé est un fichier d'administration exportable
comme les autres.
Actualiser et valider :
cvs update
cvs commit
À ce stade, on doit pouvoir importer un site dans la base. Dans la foulée, tester l'accès pserver. Toujours avec un compte d'utilisateur standard :
export CVSROOT=:pserver:marc@cvs.toto.org:/home/cvs
cvs login
cd /chemin/du/dossier/www.toto.net
cvs import www.toto.net toto initial
On peut maintenant emprunter (checkout) la dernière version du site depuis un poste Windows ou Linux pour la modifier en local.
Installer un outil Windows. Deux choix :
Avec TortoiseCVS, cliquer avec le droit droit sur l'icône du disque où on veut placer la version locale du site et choisir CVS Checkout dans le menu contextuel.
Paramètres :
Le site est extrait du référentiel. Chaque répertoire
de l'arborescence créée contient un sous-répertoire appelé
CVS. Ne pas le supprimer, il contient des infos importantes.
On peut maintenant :
Le paquet viewcvs est un script en Python qui permet de parcourir
le contenu d'un référentiel CVS à partir d'un serveur Web.
apt-get install apache viewcvs
Des questions sont posées pendant l'installation du paquet viewcvs.
Vérifier dans /etc/viewcvs/viewcvs.conf que les réponses
ont bien été enregistrées.
Dans /etc/apache/httpd.conf, ajouter la ligne suivante en fin
de fichier :
Alias /viewcvs/ /usr/share/viewcvs/
Relancer Apache :
/etc/init.d/apache restart
Le contenu de la base CVS devrait être consultable à l'adresse :
http://www.toto.net/cgi-bin/viewcvs.cgi/
$Id: index.html,v 1.16 2004/03/06 18:13:20 alex Exp $
http://www.gabuzomeu.net/alex/doc/serveur-cvs/index.html
courrier électronique | e-mail Alexandre Ratti