SafeChildren Banner

Havoc Oracle Solaris Experts

lunes, 21 de septiembre de 2009

Instalar CVS pserver en Solaris 10

Introducción
Vamos a ver cómo instalar un servidor cvs utilizando el modo pserver para acceder a él, para ello, necesitaremos el binario cvs que podemos obtener de SunFreeware, o el source y compilarlo, en nuestro caso, vamos a utilizar el paquete que nos proporciona SunFreeware y sus dependecias

Descargaremos el software utilizando wget, si tienes un proxy http, puedes ver cómo configurarlo para wget, aunque puedes utilizar curl o cualquier otro.
# wget ftp://ftp.sunfreeware.com/pub/freeware/sparc/10/cvs-1.12.13-sol10-sparc-local.gz
# wget ftp://ftp.sunfreeware.com/pub/freeware/sparc/10/libiconv-1.11-sol10-sparc-local.gz
# wget ftp://ftp.sunfreeware.com/pub/freeware/sparc/10/libgcc-3.4.6-sol10-sparc-local.gz
# wget ftp://ftp.sunfreeware.com/pub/freeware/sparc/10/libintl-3.4.0-sol10-sparc-local.gz
Repetiremos el proceso de instalación para cada uno de los paquetes, si no los tenemos instalados ya.
# gzip -d cvs-1.12.13-sol10-sparc-local.gz
# pkgadd -d cvs-1.12.13-sol10-sparc-local
Una vez instalado todos los paquetes, simplemente vamos a comprobar su correcto funcionamiento, debemos tener en cuenta que los paquetes se instalan en /usr/local y por lo tanto, debemos tener el directorio /usr/local/bin en nuestro PATH
$ which cvs
/usr/local/bin/cvs
$ ldd /usr/local/bin/cvs
libxnet.so.1 => /usr/lib/libxnet.so.1
libnsl.so.1 => /usr/lib/libnsl.so.1
libc.so.1 => /usr/lib/libc.so.1
libmp.so.2 => /lib/libmp.so.2
libmd.so.1 => /lib/libmd.so.1
libscf.so.1 => /lib/libscf.so.1
libdoor.so.1 => /lib/libdoor.so.1
libuutil.so.1 => /lib/libuutil.so.1
libgen.so.1 => /lib/libgen.so.1
libsocket.so.1 => /lib/libsocket.so.1
libm.so.2 => /lib/libm.so.2
/platform/SUNW,Sun-Fire-280R/lib/libc_psr.so.1
/platform/SUNW,Sun-Fire-280R/lib/libmd_psr.so.1
$ cvs -v

Concurrent Versions System (CVS) 1.12.13 (client/server)

Copyright (C) 2008 Free Software Foundation, Inc.

Senior active maintainers include Larry Jones, Derek R. Price,
and Mark D. Baushke. Please see the AUTHORS and README files from the CVS
distribution kit for a complete list of contributors and copyrights.

CVS may be copied only under the terms of the GNU General Public License,
a copy of which can be found with the CVS distribution kit.

Specify the --help option for further information about CVS
Una vez comprobado que nuestro software cvs funciona de forma correcta, vamos a iniciar la configuración de nuestro servidor cvs, para ello, necesitamos seleccionar un directorio en el cual estarán los archivos de repositorio, es decir, nuestro CVSROOT, en nuestro caso será /opt/www/cvs

# mkdir -p /opt/www/cvs
# cvs -d /opt/www/cvs init
Editaremos el archivo /etc/services para incluir los nuevos servicios
cvspserver 2401/tcp # CVS Client/server operations
cvspserver 2401/udp # CVS Client/server operations
Crearemos un archivo de configuración en nuestro HOME (luego lo prodremos borrar) para poder importar la nueva definición

# vi cvs-pserver
cvspserver stream tcp nowait root /usr/local/bin/cvs -f --allow-root=/opt/www/cvs pserver

:wq
Convertimos las entradas de inetd.conf en un archivo de definición de SMF, para ello, debemos utilizar inetconv
# inetconv -f -i cvs-pserver
cvspserver -> /var/svc/manifest/network/cvspserver-tcp.xml
Importando cvspserver-tcp.xml ...Terminado
Editaremos el archivo de definición de inetd y añadiremos la entrada del nuevo servicio
# vi /var/svc/profile/inetd_services.xml

<service name="'network/cvspserver-tcp'" version="'1'" type="'service'">
<instance name="'default'" enabled="'true'/">
</instance>

:wq
Reiniciamos el servicio utilizando svcadm
# svcadm restart inetd:default
Comprobamos que tenemos el servicio escuchando en el puerto que hemos seleccionado
# netstat -an|grep 2401
*.2401 *.* 0 0 49152 0 LISTEN
Ya tenemos nuestro servidor preparado, ahora podemos conectarnos con cualquier cuenta que tenga acceso al sistema, o como en nuestro caso, vamos a crear una cuenta exclusiva para su acceso
# groupadd cvs
# useradd -g cvs -d /export/home/cvs -m cvs
# passwd cvs
password: ********
# chown -r cvs:cvs /opt/ww/cvs
Ahora, nos podemos logear mediante pserver, para ello, deberemos exportar el CVSROOT y hacer login con la contraseña que le hemos asignado al usuario cvs
# su - cvs
$ export CVSROOT=:pserver:cvs@localhost:/opt/www/cvs
$ cvs login
Logging in to :pserver:cvs@localhost:2401/opt/www/cvs
CVS password: ********
Si todo ha sido correcto, nos podremos logear y comenzar a utilizar nuestro cvs de forma normal, por ejemplo, podemos importar nuestro proyecto
$ cd project
$ cd MyTest
$ cvs import Test INITIAL start
Si no queremos que el servidor utilice los usuarios y passwords del sistema, podemos crear un archivo en $CVSROOT/CVSROOT/passwd con el formato similar a /etc/passwd con la contraseña en Crypt y sólo usuario:password


Referencias

No hay comentarios:

Publicar un comentario en la entrada