|
El primer paso es obtener e instalar el RPM en caso que no esté ya instalado en la distribución que vamos a usar, para este caso manejo dos opciones diferentes, en el Redhat 7.3 uso rpm, mientras que en la distribución de Fedora core 3 uso yum.
1a. Instalar el rpm (RedHat 7.3) [root@dali /rpms]# rpm -Uvh cvs-1.11.1p1-8.7.i386.rpm
1b. Instalar o actualizar usando yum [root@goya ~]# yum install cvs
Una vez instalado reviso la documentación del utilitario para saber cómo se usa [root@goya ~]# man cvs

En este caso el manual del cvs se extiende demasiado en los comandos y opciones que tiene para usarse por linea de comandos y esto hace que sea de poca ayuda en el proceso de administración del CVS, como en realidad vamos a usar un cliente gráfico como WinCVS o TortoiseCVS estas opciones son mas faciles de explorar. Información más interesante se encuentra en los ducumentos asociados al paquete, en donde podemos ver un capítulo especial para la parte de administración, por lo menos en lo referente a la inicialización y configuracion del repositorio, para consultar la documentación usamos el lector info. [root@goya ~]# info -f cvs

Bien, luego de leer la documentacion, consultar varios sitios de CVS, Fedora y Redhat creo que estamos listos para la configuracion del servidor, los pasos son :
- Configurar el listener en xinetd
- Definir la ubicación del CVSROOT
- Inicializar el repositorio
- Modificar los archivos de configuración
- Realizar pruebas de conexión
- Modificar algo de nuestro módulo
2. Configurar Para configurar el listener en el xinetd creamos el archivo cvspserver en /etc/xinet.d/ [root@goya xinetd.d]# pwd /etc/xinetd.d [root@goya xinetd.d]# vi cvspserver

configurar la variable el home del cvs para los usuarios en caso que lo vayan a usar por linea de comandos en la misma maquina, cosa que aunque no lo crean es util. [root@goya profile.d]# pwd /etc/profile.d [root@goya profile.d]# vi cvs.sh

Revisamos que la variable exista en el ambiente [root@goya ~]# env
Si no existe debemos logearnos de nuevo o ejecutar el cvs.sh que acabamos de crear. Ahora verificamos que el directorio exista e inicializamos el repositorio y configuramos los permisos de acceso.
[root@goya ~]# mkdir $CVSROOT [root@goya ~]# cd $CVSROOT [root@goya cvsroot]# pwd /var/cvs/cvsroot [root@goya cvsroot]# chmod -R 775 $CVSROOT [root@goya cvsroot]# chgrp -R desarrollo $CVSROOT [root@goya cvsroot]# touch $CVSROOT/locks [root@goya cvsroot]# cvs init
El resultado de la inicialización es que se crea el directorio CVSROOT donde se encuentran los archivos de configuración, que para editarlos debemos usar cvs y por tanto sera la primera prueba de que está funcionando localmente el servicio. [root@goya cvsroot]# ls -la total 12 drwxrwxr-x 3 root users 4096 May 27 10:49 . drwxr-xr-x 3 root root 4096 May 27 10:46 .. drwxrwxr-x 3 root root 4096 May 27 10:49 CVSROOT
Nos pasamos a un directorio de trabajo, usando otro usuario pues root no puede hacer commit en el repositorio, en este caso usaré el home de mi usuario, le hacemos checkout al "modulo" CVROOT [AndresC@goya ~]# cd [AndresC@goya ~]# cvs checkout CVSROOT cvs checkout: Updating CVSROOT U CVSROOT/checkoutlist U CVSROOT/commitinfo U CVSROOT/config U CVSROOT/cvswrappers U CVSROOT/editinfo U CVSROOT/loginfo U CVSROOT/modules U CVSROOT/notify U CVSROOT/rcsinfo U CVSROOT/taginfo U CVSROOT/verifymsg
Ahora editamos la configuración que está en CVSROOT/config, basicamente nos interesa habilitar la seguridad del servidor, habilitando la linea:
SystemAuth=yes
Luego hacemos commit en el repositorio para que tome los cambios en la configuración.[AndresC@goya ~]$ cvs commit CVSROOT/config Checking in CVSROOT/config; /var/cvs/cvsroot/CVSROOT/config,v <-- config new revision: 1.2; previous revision: 1.1 done cvs commit: Rebuilding administrative file database
Reiniciamos el servicio xinetd para que tome el nuevo archivo de configuración [root@goya ~]# service xinetd stop Stopping xinetd: [ OK ] [root@goya ~]# service xinetd start Starting xinetd: [ OK ]
Desde otra máquina probamos que podemos llegar al puerto del servidor de cvs, en caso que no podamos establecer la comunicación es probable que algun firewall o herramienta similar esté bloqueando el acceso al puerto. [root@dali /root]# telnet goya.eforcers.com 2401 Trying 192.168.123.30... Connected to goya.eforcers.com. Escape character is '^]'.
^C Connection closed by foreign host.
3. Probar y personalizar la configuracion Con todo configurado podemos hacer una prueba con un cliente gráfico desde nuestra máquina haciéndole checkout al mismo modulo de configuración para personalizar aun mas la configuración del servidor de CVS.
Imagen 5
El resultado es la extracción de una copia del modulo en nuestro directorio
Imagen 6
Una de las primeras cosas que hacemos es personalizar como debe manejar el cvs ciertos tipos de archivos de acuerdo a si son binarios o son texto, pues cvs está optimizado para identificar diferencias entre archivos de texto, permitiendo múltiples operaciones para manejar estos archivos cuando se presentan conflictos. Esta configuracion se realiza en el archivo cvswrappers, incluiré algunas de las extensiones que nosotros usamos por ser una empresa de desarrollo web.
# For example: *.gif -k 'b' *.bmp -k 'b' *.psd -k 'b' *.png -k 'b' *.ico -k 'b' *.class -k 'b' *.jar -k 'b' *.zip -k 'b' *.avi -k 'b' *.mov -k 'b' *.jpg -k 'b' *.mpg -k 'b' *.swf -k 'b' *.pdf -k 'b'
Hacemos commit al repositorio
Imagen 7
Verificamos el resultado de la operación usando el log del cliente
Checking in cvswrappers; /var/cvs/cvsroot/CVSROOT/cvswrappers,v <-- cvswrappers new revision: 1.2; previous revision: 1.1 done cvs commit: Rebuilding administrative file database
Success, CVS operation completed |