miércoles, 5 de noviembre de 2008

Instalación del servicio CVS en Linux

Hoy tratamos el tema de la instalación del servicio de repositorios de software CVS en un servidor Linux. Para obtener información sobre qué es CVS y cómo se utiliza podeis echarle un vistazo los enlaces. Nosotros nos centraremos en su instalación y solución de los problemas que encontramos.

La instalación del servicio se obvia ya que es tan fácil como la de cualquier paquete que hayas intalado anteriormente en tu linux. El paquete CVS se encuentra en el CD/DVD de la distribución (en nuestro caso OpenSuse 11).

Asi que pasamos directamente a la configuración y el acceso al servicio.

- En primer lugar habilitamos el servicio CVS en nuestro equipo. Es recomendable activarlo en el arranque del sistema.
*/
Ejecutamos el YaST ( $yast ) y accedemos como root a la sección de Servicios de Red/Xinetd
Habilitamos los servicios si los teniamos deshabilitados.
Activamos el servicio CVS (en nuestro caso 'cvspserver')
Guardamos la configuración y salimos.
/*

- Para conectarnos desde otro equipo nuestro servidor este deberá tener el puerto asociado al servicio CVS abierto.
*/
Abrimos el YaST, sección Seguridad y usuarios/Cortafuegos (Firewall)/Servicios autorizados.
Notese que el servicio CVS no es un servicio por defecto y no lo encontraremos en la lista que se nos proporciona para seleccionarlo.
En este caso abrimos las Opciones Avanzadas y encontramos una lista de puertos abiertos. Añadimos el numero de puerto ( 2401 por defecto ) y ya podremos acceder al servidor a través del mismo.
Guardamos la configuración y salimos.
/*

- En este momento, nuestro servidor esta preparado para recibir conexiones a traves del servicio CVS, Pero si ejecutamos la orden $cvs init el shell nos devolverá un error ya que no hemos definido un directorio raiz el cual albergará el repositorio de sofware y los archivos de configuración.
*/
Creamos un directorio raíz (REPO en nuestro caso) en nuestro sistema de ficheros. $mkdir REPO.
Exportamos la variable de entorno CVSROOT asignandole la ruta absoluta del directorio donde guardaremos nuestros repositorios de software. En nuestro caso con $export CVSROOT=/usr/local/REPO funcionaria pero al rearrancar el servidor probablemente la variable se habria inicializado sin valor.
Para no tener que asignar la variable cada vez que iniciemos editaremos el archivo cvs que encontraremos en el directorio /etc/xinetd.d.
/*

Nos encontraremos un formato de archivo como este:

# CVS pserver (remote acces to your CVS repositories)
# Please read the section on security and passwords in the CVS manual,
# before you enable this.
# default: off
service cvspserver
{
socket_type = stream
protocol = tcp
wait = no
user = root
server = /usr/bin/cvs
server_args = -f --allow-root=/usr/local/REPO pserver
}

Donde asignaremos nuestra ruta absoluta al directorio REPO.

- Llegados a este punto,con el servicio CVS activo ,estamos listos para conectar al servidor y trabajar con los repositorios.
En nuestro caso conectamos mediante la conexión pserver, la cual necesita un usuario unix en el sistema para la autenticación.
Para que los usuarios puedan conectarse al servidor y trabajar sobre el directorio REPO que hemos creado tendremos que tener en cuenta los permisos sobre el directorio, ya que podemos encontrarnos con que los usuarios del servicio no tengan permisos suficientes, por ejemplo de escritura y no puedan subir repositorios al servidor.
En cuanto a la autenticación, en el directorio CVSROOT que se encuentra dentro de nuestro directorio raiz editaremos (o crearemos si no existe) el archivo passwd que contendrá los usuarios que pueden acceder al servicio de forma remota.
la estructura del archivo es la siguiente:

usuariolocal:contraseñaencriptada:usuarioremoto

Donde el usuario local deberá estar definido en nuestro sistema.
El nombre del usuario remoto es el que se mostrará al usuario al acceder. Si omitimos este campo el nombre será el mismo que el usuario local.

Con todos los usuarios definidos ya podemos probar a acceder al servicio normalmente a través de pserver. En nuestro caso accedemos a través de Eclipse.

- Problemas encontrados tras la instalación.
[connection refused. No such repository]

Que nos dio a entender que no habian archivos en el directorio raiz del CVS.
La sorpresa fue que en el directorio /etc/xinetd.d teniamos un archivo de configuración llamado servers que nos estaba redireccionando el servicio al puerto 9099. Editamos el archivo apuntando al puerto 2401 que habiamos definido anteriormente y a funcionar con normalidad.

- Enlaces Relacionados:
CVS Sitio oficial - http://www.cvshome.org
CVS en la Wikipedia - http://es.wikipedia.org/wiki/CVS


No hay comentarios:

Publicar un comentario