Instalar un servidor de CVS en Ubuntu

cvs.png

Entre mis nuevas tareas tengo la de administrar un servidor CVS, hacia años que no lo administraba, asi que he vuelto a recordar unas pequeñas nociones de control de versiones. Aqui hablare de como instalar CVS en Ubuntu Edgy. Es un articulo meramente tecnico, enfocado a desarrolladores. Lo de siempre, si no te interesa puedes olvidar de leer lo que continua.

El significado de CVS como comenta la wikipedia, es el siguiente:
El Concurrent Versions System (CVS), también conocido como Concurrent Version System o Concurrent Versioning System, es una aplicación informática que implementa un sistema de control de versiones: mantiene el registro de todo el trabajo y los cambios en los ficheros (código fuente principalmente) que forman un proyecto (de programa) y permite que distintos desarrolladores (potencialmente situados a gran distancia) colaboren. CVS se ha hecho popular en el mundo del software libre. Sus desarrolladores difunden el sistema bajo la licencia GPL.

Basicamente se utiliza en el desarrollo de un proyecto informatico para llevar un control de los ficheros del codigo y evitar por ejemplo que el codigo que escribe un usuario sea “machacado” con el codigo de otro usuario. Ademas con un sistema de control de versiones, el programador siempre puede disponer de la ultima version del codigo lo que ayuda a continuar con el desarrollo del proyecto.

Te pondre un ejemplo de para que sirve todo esto.

Imagina dos programadores que estan trabajando en el mismo proyecto, y casualmente ambos estan modificando el mismo fichero de codigo. Cuando uno de ellos actualice ese fichero en el repositorio se queda marcado, de tal manera que cuando el otro intente subir al repositorio de codigo ya ve, que ese fichero ha sufrido una modificacion desde la ultima vez que el se actualizo, lo que le obliga, a traerse de nuevo ese fichero (con los cambios que haya realizado el primer programador), añadir los suyos y volver a subir el fichero. Sin un mecanismo de control de versiones, ese cambio se perderia, el primer desarrollador subiria el fichero y el segundo subiria su version. Esto para un fichero es controlable, pero cuando tienes miles de ficheros y miles de lineas de codigo significa un desastre total. Por eso el control de versiones es necesario.

Para instalar el servidor y el cliente cvs ejecutamos:

$ sudo apt-get install cvs cvsd

En un momento determinado nos pedira la ruta para el repositorio, pon por ejemplo /cvsrepo. Este es el directorio a partir del cual se ira colgando todos aquellos modulos/proyectos que administremos con el CVS.
Este directorio lo vamos a definir a partir de /var/lib/cvsd, asi que realmente el path completo seria:
/var/lib/cvsd/cvsrepo

Ejecutamos las siguientes secuencias de comandos:

$ sudo cvsd-buildroot /var/lib/cvsd

Si la carpeta cvsrepo no existe, la creamos

$ cd /var/lib/cvsd
$ sudo mkdir cvsrepo

Le damos permisos sobre la carpeta al usuario cvsd

$ sudo chown -R cvsd:cvsd cvsrepo

Inicializamos el repositorio

$ sudo cvs -d /var/lib/cvsd/cvsrepo init

creamos un usuario cvs y le damos una password.

$ sudo cvsd-passwd /var/lib/cvsd/cvsrepo <username>
por ejemplo:
sudo cvsd-passwd /var/lib/cvsd/cvsrepo jose

Ahora editamos el fichero:

sudo vi //var/lib/cvsd/cvsrepo/CVSROOT/config

Cambiamos “#SystemAuto=no” a “#SystemAuto=no”

Nota: si no te deja editar el fichero, copialo a otro sitio, luego eliminas el principal y vuelves a copiar este ya modificado.

Ya tenemos todo funcionando. Para comprobar que accedemos:

cvs -d :pserver:username@localhost:/cvsrepo login
cvs -d :pserver:username@localhost:/cvsrepo checkout .

Por ejemplo:

cvs -d :pserver:jose@localhost:/cvsrepo login

Seria adecuado exportar la variable CVSROOT del siguiente modo:

export CVSROOT=:pserver:jose@localhost:/cvsrepo

o el valor que fuera, de esta manera ya no necesitariamos especificarla cada vez que fueramos a usar un comando “cvs”.

Ahora podriamos logarnos con:

cvs login

y por ejemplo colocarnos en la carpeta (dentro) de un proyecto que quisieramos subir al CVS y ejecutar:

cvs import -m "ficheros iniciales" MiProyecto HEAD MAIN

Si te sale el error:
/cvsroot: no such repository

es que has especificado mal la ruta del repositorio. deberia ser /cvsrepo o la que pongas, pero asegurate de que no te haya bailado
alguna letra. En caso de que lo hayas definido mal, No lo elimines con apt-get remove cvsd. Pues a la hora de volver a instalarlo
mantendria la configuracion anterior. tendrias que ejecutar:

apt-get remove --purge cvsd
e instalarlo de nuevo
o mejor aun,

dpkg-reconfigure cvsd

que nos permite reconfigurar de nuevo cvs server (cvsd) e indicar ahora si la ruta adecuada para el repositorio (/cvsrepo, /cvsroot, /repo, o el que quieras usar).

Como clientes de CVS yo o utilizo “cvs” desde la linea de comandos, o Eclipse. Pero tambien podrias instalar un cliente grafico como “CVSGui” con el comando:

$ apt-get install gcvs

Su interfaz es muy intuitiva, en Preferencias configuras el valor de la variable CVSROOT, y como mecanismo de autentificacion “pserver”. Despues harias un “login” desde el menu y ya podrias trabajar normalmente.

cvsgui01.jpg

Mas informacion | instalar CVS
Guia de CVS
Tutorial de uso de CVS
Eclipse y CVS
Otro sistema de control de versiones, Subversion

22 Responses to “Instalar un servidor de CVS en Ubuntu”


  1. 1 kikorb mayo 28, 2007 de 11:31 pm

    Si quires postear un tutorial muy parecido sobre como montar un servidor de subversion (prototcolo que ha dejado muy atras a CVS) aquí tienes el enlace:

    http :// etsiit.blogspot.com/2007/05/instalacin-y-configuracin-de-subversion.html

    Gracias por este. Si algún día lo necesito sé donde buscarlo

  2. 2 kikorb mayo 28, 2007 de 11:32 pm

    La URL va troceada porque si no no me deja postear. Será que tiene filtrados los enlaces.

  3. 3 superpiwi mayo 29, 2007 de 7:42 am

    me interesa tu articulo, con tu permiso voy a colgarlo. La verdad que prefiero Subversion pero esto es el trabajo y tienes que “heredar” lo que ya existe. A ver si puedo ser un poco malvado y con tiempo, hago una migracion de CVS a subversion 😉

  4. 4 flinchu julio 13, 2007 de 7:04 am

    Existe una errata, lo correcto sería:

    Cambiamos “#SystemAuto=no” a “SystemAuto=no”

    Por lo demás muy buen artículo.

  5. 5 superpiwi julio 18, 2007 de 9:29 pm

    muchas gracias por la correccion.

  6. 6 davidpc abril 12, 2008 de 10:34 am

    Hola, en realidad es SystemAuth, no SystemAuto.

    Gracias por el tutorial!

  7. 7 Octavio abril 12, 2008 de 2:10 pm

    Hola, segui paso a paso el tutorial y me encuentro con el sgte problema, al hacer

    cvs -d :pserver:cvsoca@localhost:/var/lib/cvsd/cvsrepo login

    me dá el sgte error

    cvs login: authorization failed: server localhost rejected access to /var/lib/cvsd/cvsrepo for user cvsoca

    Probé abriendo el pto 2401 desde el firestarter y creando el usuario cvsoca , asignandolo al grupo cvsd y dando permisos sobre la carpeta del repositorio y nada…

    Alguna idea??

    saludos.

  8. 8 yoyo julio 2, 2009 de 4:32 pm

    Hola, despues de tres dias, peleandome con cvsd, descubri que en Jaunty hay que modificar el /etc/cvsd/cvsd.conf

    //Linea original
    Listen * 2401
    //por esta
    Listen 0.0.0.0 2401

    Discusion original

    http://ubuntuforums.org/showthread.p…62#post7213962

  9. 9 Diego agosto 5, 2009 de 3:23 pm

    Hola gente me sale este error al correr… esto…

    cvs -d :pserver:cvsoca@localhost:/var/lib/cvsd/cvsrepo login

    cvs [login aborted]: unrecognized auth response from localhost: cvs [pserver aborted]: /cvsrepo: no such repository

    alguna ayuda x ahi!

  10. 10 ber agosto 10, 2009 de 10:32 am

    yo también seguí el tutorial paso a paso y me encontré con este error:

    cvs [login aborted]: connect to localhost(127.0.0.1):2401 failed: Connection refused

  11. 11 carpenter enero 16, 2010 de 4:37 am

    No SIRVIO, al igual que todos me salio el error:

    cvs [login aborted]: connect to localhost(127.0.0.1):2401 failed: Connection refused

    termine poniendo subversion..

    Saludos

  12. 12 Carla febrero 6, 2010 de 1:13 pm

    Hola,

    Seguí el tutorial paso a paso (inclusive lo del 0.0.0.0 2401) y…
    me aparece el mismo error que ‘Carpenter’:

    cvs [login aborted]: connect to localhost(127.0.0.1):2401 failed: Connection refused.

    Alguien puede ayudarme?

    Muchas gracias

  13. 13 redone marzo 16, 2010 de 7:36 pm

    Hola,

    A mi me falto hacer esto:
    1)
    sudo apt-get install xinetd

    2) crear archivo /etc/xinetd.d/cvspserver
    con algo como:

    service cvspserver
    {
    port = 2401
    socket_type = stream
    protocol = tcp
    user = root
    wait = no
    type = UNLISTED
    server = /usr/bin/cvs
    server_args = -f –allow-root /var/lib/cvsd/cvsrepo pserver
    disable = no
    }

    3)hacer sudo /etc/init.d/xinetd start

    Listo!

    4)para verificar que el servicio esta listos se puede hacer esto
    sudo netstat -tap | grep cvs

    y debe imprimir algo como:
    tcp 0 0 *:cvspserver *:* LISTEN 17259/xinetd

    nota: el numero PID 17259 no importa, va a cambiar

    Saludos!

  14. 14 Labe junio 10, 2010 de 3:54 pm

    A mi me dio este error:

    *** %n in writable segment detected ***
    *** %n in writable segment detected ***
    *** %n in writable segment detected ***
    *** %n in writable segment detected ***
    *** %n in writable segment detected ***
    *** %n in writable segment detected ***
    *** %n in writable segment detected ***
    *** %n in writable segment detected ***
    *** %n in writable segment detected ***
    *** %n in writable segment detected ***
    *** %n in writable segment detected ***
    *** %n in writable segment detected ***
    *** %n in writable segment detected ***
    *** %n in writable segment detected ***
    Segmentation fault

    😦

  15. 15 Fran agosto 25, 2010 de 10:38 pm

    Yo tenia el mismo error que todos, el de
    cvs [login aborted]: connect to localhost(127.0.0.1):2401 failed: Connection refused.
    Hay de modificar el archivo /etc/cvsd/cvsd.conf , las ultimas dos lineas deberian quedar de la siguiente manera:

    Listen 0.0.0.0 2401
    Repos /cvsrepo

    Pero para que empice andar hay REINICIAR EL CSVD
    sudo /etc/init.d/cvsd restart

    Ahi espero que les ande a todos.
    Saludos

  16. 17 Enrique noviembre 13, 2011 de 9:39 pm

    A mí me funcionó perfecto, lo único es lo del archivo que hay que descomentar la línea “#SystemAuth=no” a “SystemAuth=no” , y hacer lo del
    Listen 0.0.0.0 2401
    Repos /cvsrepo

    comenten el Listen *2401 o borrenlo, de resto escriban el Repos/cvsrepo después del Repos/cvsrepo, si no van a usar los otros no importa que los dejen, el mismo cvs busca por el cvsrepo. Acuérdense de reiniciar el cvsd para que se carguen los datos: sudo /etc/init.d/cvsd restart
    Si no lo hacen no les tomará en cuenta los cambios. Suerte!!!!!

    • 18 Enrique noviembre 13, 2011 de 9:41 pm

      Por cierto, muchas gracias por el post, aunque sería bueno agregarle un par de cosas de como usar los comandos cvs para importar y exportar proyectos. Aunque así está bien como intro.

  17. 19 Josue agosto 30, 2013 de 3:22 pm

    Esa onda no sirve

  18. 20 Buco enero 16, 2014 de 11:31 pm

    me sale este error desde mi eclipse
    The server reported an error while performing the “cvs commit” command.
    juegoLiviano: cvs [commit aborted]: ‘root’ is not allowed to commit files

  19. 21 Chema noviembre 30, 2018 de 5:19 pm

    A manera de agradecimiento al autor sobre su excelente articulo y a todos los colaboradores de esta pagina, les traigo el tutorial con todos los pasos detallados para que les funcione correctamente ( ya probado en diferente versiones de Linux ) Lo unico que faltaria seria la configuracion de la estacion cliente.

    Espero que les sirva el tutorial, el unico fin es colaborar con todos uds.

    Pasos para la instalación de Servidor CVS:

    Instalación Servidor y Cliente CVS:
    apt-get install cvs cvsd

    Instalación Herramientas Adicionales:

    Xinetd (Controlar Accesos)
    apt-get install xinetd

    Net-tools (Herramientas)
    apt-get install net-tools

    Configuramos ruta del repositorio
    # cvsd-buildroot /var/lib/cvsd
    # cvsd-buildroot /var/lib/cvsd/cvsrepo

    Creamos la carpeta CVS donde estarán los proyectos
    # cd /var/lib/cvsd
    # mkdir cvsrepo

    Asignamos permisos sobre la carpeta
    # chown -R cvsd:cvsd cvsrepo

    Inicializamos el repositorio
    # cvs -d /var/lib/cvsd init
    # cvs -d /var/lib/cvsd/cvsrepo init

    Creamos un usuario y asignamos su contraseña
    # cvsd-passwd /var/lib/cvsd/cvsrepo jose

    Editamos el fichero
    # nano /var/lib/cvsd/cvsrepo/CVSROOT/config

    Cambiamos el siguiente valor:
    #SystemAuth=no a SystemAuth=no

    Editamos el fichero
    # nano /etc/cvsd/cvsd.conf

    Modificamos el siguiente valor (Se encuentra hasta el final)
    Listen 0.0.0.0 2401
    Repos /cvsrepo

    Editamos el fichero
    # nano /etc/xinetd.d/cvspserver

    Agregamos la siguiente información

    service cvspserver
    {
    port = 2401
    socket_type = stream
    protocol = tcp
    user = root
    wait = no
    type = UNLISTED
    server = /usr/bin/cvs
    server_args = -f –allow-root /var/lib/cvsd/cvsrepo pserver
    disable = no
    }

    Iniciamos el servicio
    # /etc/init.d/xinetd start

    Verificamos el servicio
    # netstat -tap | grep cvs

    Exportamos la variable CVSROOT
    # export CVSROOT=:pserver:jose@localhost:/cvsrepo

    Reiniciamos el servicio
    # /etc/init.d/xinetd restart
    # /etc/init.d/cvsd restart

    Si todo está correcto, iniciamos sesión
    # cvs -d :pserver:jose@localhost:/cvsrepo login

    Tambien podemos iniciar sesión usando
    # cvs login


  1. 1 Instalar un servidor de Subversion en Ubuntu « Ubuntu Life Trackback en mayo 29, 2007 de 7:48 am

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s







¿Es compatible tu equipo con Ubuntu?


( Muchos fondos de pantalla, aqui )

DESCARGATE SCIFI LIFE

365 Dias de Soledad
Me debes los sueños, las promesas y las noches rotas. Me debes la paz, la sonrisa y la esperanza robadas. Me debes la sangre, las lágrimas y el sudor vertido. Me debes las noches vacías, los abrazos anhelados. Me debes un beso de ajenjo de tu amarga boca.

The Ubuntu Counter Project - user number # 11961
Geo Visitors Map

Archivos

mayo 2007
L M X J V S D
 123456
78910111213
14151617181920
21222324252627
28293031  

Blog Stats

  • 31.066.650 hits

A %d blogueros les gusta esto: