Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
cvs_server [Le 07/05/2008, 22:53]
zedtux Division des sections d'installation et de configuration
cvs_server [Le 11/09/2022, 10:34] (Version actuelle)
moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892)
Ligne 1: Ligne 1:
-{{tag>breezy dapper edgy developpement ​serveur}}+{{tag>Xenial programmation ​serveur ​BROUILLON}}
  
 ---- ----
  
 ====== Mise en place d'un serveur CVS ====== ====== 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. 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 [[http://​www.google.fr|google]] qui fait ça très bien. 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 [[http://​www.google.fr|google]] qui fait ça très bien.
  
-===== Prérequis ​===== +===== Pré-requis ​===== 
- +  
-Avoir un système linux fonctionelTout 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. +  * Disposer des [[:​sudo|droits d'​administration]]. 
- +  * Disposer ​d'​une ​connexion à Internet configurée ​et activée
-Attention : Plus loin j'​utilise /​mon/​chemin/​cvs qui n'est pas un vrai répertoire et qui **doit** être accomodé ​à vos besoins...+Attention : Plus loin j'​utilise /​mon/​chemin/​cvs qui n'est pas un vrai répertoire et qui **doit** être accommodé ​à vos besoins...
  
  
Ligne 24: Ligne 19:
 ===== Installation ===== ===== Installation =====
  
- +Pour installer ce logicielil suffit ​d'[[:​tutoriel:​comment_installer_un_paquet|installer ​les paquets]] ** [[apt>cvs]]**.
-==== Installations ==== +
- +
-Dans un premier tempsinstallons 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+
  
  
Ligne 46: Ligne 32:
   sudo useradd -m -g cvs -s /​sbin/​nologin anonymous   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 ​: +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 ​[[:tutoriel:​comment_modifier_un_fichier|ouvrir le fichier]] **/etc/group** et modifier ​la ligne contenant cvs: (tout en bas normalement) pour quelle soit comme ceci : <​file>​cvs:​x:​501:​cvs,​anonymous,​monUser1,​...</​file>​
- +
-  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.
  
-et ajoutez tous vos utilisateurs 
  
 ==== Répertoires ==== ==== Répertoires ====
Ligne 62: Ligne 41:
 Il faut que le cvs puisse déposer tous ses fichiers quelque part. Nous allons donc lui indiquer où... 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   export CVSROOT=/​mon/​chemin/​cvs
-  mkdir $CVSROOT+  mkdir $CVSROOT ​
  
  
-==== xinetd ​====+==== openbsd-inetd ​====
  
-Nous allons maintenant configurer xinetd afin qu'il fasse le relais entre la couche réseau et le serveur CVS en lui mêmePour cela, lancez la commande+[[:​tutoriel:​comment_installer_un_paquet|Installez ​le paquet]] **[[apt>​openbsd-inetd]]**.
  
-  gksudo gedit /​etc/​xinetd.d/​cvspserver+Voici comment configurer le service :
  
-et indiquez dans le fichier nouvellement créé ​:+Dans un premier temps, nous allons définir ​le port à utiliser ​: 
 +  sudo gedit /​etc/​services
  
-  service cvspserver +<note warning> 
-  { +Dans la version d'​ubuntu 9.04, il apparaît le message suivant à chaque fois qu'il faut utiliser gedit :
-    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 [[http://​www.linuxfocus.org/​Francais/​November2000/​article175.shtml|cette page]] qui en parles longuement.+  (gedit:​20882):​ Gtk-WARNING **: cannot open display:
  
-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**.+La solution temporaire que j'ai trouvé ​est de lancer ces commandes dans un nouveau terminal 
 +</note>
  
-Attention ​L'​option **--allow-root** doit absolument pointer vers le dossier créé dans le paragraphe précédent.+Et ajoutez ces deux lignes ​: 
 +  cvspserver 2401/​tcp 
 +  cvspserver 2401/​udp
  
-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 ​:+Maintenant, ajoutons ​le service ​dans openbsd-inetd ​: 
 +  sudo gedit /​etc/​inetd.conf
  
-  ​sudo /​etc/​init.d/​xinetd ​restart+Et ajoutez à la fin la ligne suivante en changeant le chemin vers cvs : 
 +  cvspserver stream tcp nowait root /​usr/​bin/​cvs -f --allow-root=/​mon/​chemin/​cvs pserver 
 + 
 +Il ne reste plus qu'a redémarrer openbsd-inetd : 
 +  ​sudo /​etc/​init.d/​openbsd-inetd ​restart
  
  
Ligne 104: Ligne 87:
 Une partie somme toute assez simple puisqu'​il suffit de faire : Une partie somme toute assez simple puisqu'​il suffit de faire :
  
-  sudo cvs init+Toujours en tant que root : 
 + 
 +  ​cvs init 
 + 
 +Normalement il ne se passe rien mais vous pouvez constater que dans /​mon/​chemin/​cvs le répertoire CVSROOT a été créé ... 
 + 
 +Cela dit, comme nous avons précédemment décidé que le serveur cvs était encapsulé dans un groupe s'​appelant **cvs**, il faut modifier les droits et le propriétaire des fichiers : 
 + 
 +  chown -R cvs:cvs $CVSROOT 
 +  chmod -R 770 $CVSROOT 
 +  chmod u+s $CVSROOT 
 + 
 +Maintenant, nous n'​avons plus besoin de l'​environnement root : 
 +  exit 
  
-Normalement il ne se passe rien mais vous pouvez constater que dans /​mon/​chemin/​cvs le répertoire CVSROOT a été créé ...  
  
 Si vous obtenez cette erreur : Si vous obtenez cette erreur :
Ligne 112: Ligne 108:
   cvs [init aborted]: or set the CVSROOT environment variable.   cvs [init aborted]: or set the CVSROOT environment variable.
  
-vous devez utiliser le paramètre -d comme ceci : +La variable ​CVSROOT ​n'est pas ou n'est plus renseigné. 
-  sudo cvs -d $CVSROOT ​init +Normalementvous devez toujours être en tant que root. Si ce n'est pas le casrecommencé la partie [[cvs_server#​repertoires]]
- +
-Cela ditcomme nous avons précédemment décidé ​que le serveur cvs était encapsulé dans un groupe s'​appelant **cvs**il faut modifier les droits et le propriétaire des fichiers :+
  
-  sudo chown -R cvs:cvs $CVSROOT 
-  sudo chmod -R 770 $CVSROOT 
-  sudo chmod u+s $CVSROOT 
  
 ==== Ajouter les utilisateurs CVS ==== ==== Ajouter les utilisateurs CVS ====
Ligne 129: Ligne 120:
 Le & à la fin va nous permettre de faire autre chose en même temps, sans ouvrir une autre console ... Le & à la fin va nous permettre de faire autre chose en même temps, sans ouvrir une autre console ...
  
-Le fichier est vide... Parfait nous allons le remplir. On a juste besoin ​d'un utilitaire pour crypter les mots de passe+Le fichier est vide... Parfait nous allons le remplir. On a juste besoin ​de l'​utilitaire ​htpasswd du paquet [[apt://​apache2-utils]] ​pour crypter les mots de passe
  
   sudo apt-get install apache2-utils   sudo apt-get install apache2-utils
Ligne 135: Ligne 126:
 Les mots de passe sont cryptés par cette commande : Les mots de passe sont cryptés par cette commande :
  
-  ​sudo htpasswd -n monUser1+  htpasswd -n monUser1
  
 On vous demande un mot de passe et une confirmation. Ne vous inquiétez pas, si vous avez saisi un utilisateur unix existant, la commande ne modifiera pas son mot de passe. A la fin, elle affiche quelque chose comme ça : On vous demande un mot de passe et une confirmation. Ne vous inquiétez pas, si vous avez saisi un utilisateur unix existant, la commande ne modifiera pas son mot de passe. A la fin, elle affiche quelque chose comme ça :
Ligne 148: Ligne 139:
   anonymous::​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 ​+<note warning>​ 
 +Si il vous est impossible d'​enregistrer. 
 +Fermez l'​éditeur de texte sans enregistrer. 
 +lancez la commande 
 +  gksudo gedit /​chemin/​vers/​cvs/​CVSROOT/​passwd & 
 + 
 +cela donne par exemple 
 +  gksudo gedit /​home/​rootcvs/​CVSROOT/​passwd & 
 +</​note>​ 
 + 
 +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   gksudo gedit $CVSROOT/​CVSROOT/​readers
Ligne 156: Ligne 157:
   anonymous   anonymous
  
 +<note warning>​même remarque que pour le passwd.
 +Si cela ne fonctionne pas,
 +Fermez l'​éditeur de texte sans enregistrer.
 +lancez la commande
 +  gksudo gedit /​chemin/​vers/​cvs/​CVSROOT/​readers
 +
 +cela donne par exemple
 +  gksudo gedit /​home/​rootcvs/​CVSROOT/​readers
 + </​note>​
 +
 +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 ===== ===== Conclusion =====
Ligne 167: Ligne 183:
  
 Pour une utilisation de CVS, je vous recommande d'​utiliser [[http://​www.google.fr|google]] qui propose des tutoriaux par centaines à ce sujet. Pour une utilisation de CVS, je vous recommande d'​utiliser [[http://​www.google.fr|google]] qui propose des tutoriaux par centaines à ce sujet.
 +
 +
 +
  
  
Ligne 174: Ligne 193:
  
 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 : 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 : Installation de CVS :
Ligne 186: Ligne 204:
  
 Configurations : Configurations :
-   cd /​var/​lib/​cvsd ​and build the cvsroot:+   cd /​var/​lib/​cvsd ​ 
 +   # ​build the cvsroot:
    sudo cvsd-buildroot /​var/​lib/​cvsd  ​    sudo cvsd-buildroot /​var/​lib/​cvsd  ​
    sudo mkdir cvsroot    sudo mkdir cvsroot
Ligne 196: Ligne 215:
  
 Changement du type d'​authentification : Changement du type d'​authentification :
 +<note warning>​L'​opération suivante échoue car le fichier config est en lecture seule pour tous les utilisateurs.</​note>​
 +
   sudo vi /​var/​lib/​cvsd/​cvsroot/​CVSROOT/​config   sudo vi /​var/​lib/​cvsd/​cvsroot/​CVSROOT/​config
   uncomment the “SystemAuto=no” line.   uncomment the “SystemAuto=no” line.
 +
 +Pour tester la connexion au serveur cvs :
 +  cvs -d :​pserver:​justin@localhost:/​cvsroot login
 +  ​
 +En cas d'​erreur : cvs [login aborted]: connect to localhost(127.0.0.1):​2401 failed: Connection refused
 +
 +sudo vi /​etc/​cvsd/​cvsd.conf
 +
 +changer la ligne : Listen * 2401 par:​ Listen 0.0.0.0 2401 ou par : Listen 127.0.0.1 2401 pour une utilisation locale
 +
 +ensuite faire un redemarrage du cvsd :  sudo /​etc/​init.d/​cvsd restart
 +
 +
 +
 +
  
  
Ligne 208: Ligne 244:
 ---- ----
  
-//​Contributeur : [[utilisateurs:​pitilezard|PiTiLeZarD]] - Fortement inspiré de [[http://​www.uta.edu/​oit/​how-to/​docs/​cvs.php|ce HowTo]] mais pas une traduction exacte.//+//​Contributeur : [[utilisateurs:​pitilezard|PiTiLeZarD]] - Fortement inspiré de [[http://​www.uta.edu/​oit/​how-to/​docs/​cvs.php|ce HowTo]] mais pas une traduction exacte.//, [[utilisateurs:​zedtux]]
  • cvs_server.1210193609.txt.gz
  • Dernière modification: Le 18/04/2011, 14:45
  • (modification externe)