Tal como mencioné en el artículo ¿Cuáles son las principales diferencias entre los sistemas GNU/Linux y OpenBSD?, OpenBSD utiliza CVS como sistema de control de versiones. Específicamente utiliza CVS anónimo para mantener actualizada una copia local del source tree de OpenBSD, respecto a los cambios hechos en los fuentes actuales de OpenBSD. Este mecanismo es un sistema de control de versiones "tolerante" en el sentido que respeta los cambios realizados en una copia local, y hace el "mejor esfuerzo" para actualizar el source tree completo, más que dejar una lista de problemas a resolver antes de continuar (tal como ocurre con otros sistemas de control de versiones).

OpenBSD implementa un repositorio central (replicado en diferentes mirrors) para el código fuente de todo el software soportado de forma oficial, a la vez que permite que los desarrolladores mantengan copias locales con sus respectivos cambios. De esta forma, los desarrolladores tienen acceso de lectura/escritura, mientras que el resto del mundo tiene acceso de sólo lectura. Para más información sobre CVS acceder a: OpenBSD Anonymous CVS

El problema al utilizar CVS anónimo es que la mayoría de los mirrors se basan en el protocolo SSH, lo cual es un dolor de cabeza cuando se trabaja dentro de una red corporativa donde la única salida hacia Internet es a través de un proxy HTTP/HTTPS. En caso de no tener la posibilidad de permitir la salida a través del puerto 22 hacia el exterior (cosa que representa una aberración total desde el punto de vista de la seguridad perimetral), no queda otra alternativa que enmascarar una conexión SSH (hacia un mirror que acepte conexiones SSH entrantes en el puerto 443) como SSL, para engañar así al proxy HTTP/HTTPS, tal como lo expliqué en mi artículo Cómo crear un túnel SSH a través de un proxy HTTP.

Afortunadamente existe un (único, hasta el momento) mirror que acepta conexiones SSH entrantes en el puerto 443:

Instalar corkscrew en OpenBSD

http://agroman.net/corkscrew/

La instalación de corkscrew es muy sencilla. Descargar (tal vez sea necesario configurar el proxy previamente) una copia del código fuente, extraer el paquete y compilar:

# cd
# ftp http://agroman.net/corkscrew/corkscrew-2.0.tar.gz
# cd corkscrew-2.0
# ./configure
# make
# make install

Luego, configurar el acceso a este mirror, a través del puerto 443, enmascarando al proxy la conexión SSH utilizando corkscrew:

# cd
# mkdir .ssh
# cd .ssh
# vi config

Agregar la siguiente configuración en el archivo ~/.ssh/config (suponiendo que el acceso a Internet es a través de http://proxy.linuxito.com:8080):

Host *
 ServerAliveInterval 60

Host anoncvs.spacehopper.org
  Port 443
  PasswordAuthentication yes
  ProxyCommand corkscrew proxy.linuxito.com 8080 %h %p

La línea Port 443 debe agregarse debido a que el comando cvs no incluye una opción para especificar el número de puerto cuando se utiliza sobre SSH.

Finalmente, exportar la variable de entorno CVSROOT, la cual indica el mirror a utilizar con CVS:

# export CVSROOT=anoncvs@anoncvs.spacehopper.org:/cvs

Actualizar los fuentes de OpenBSD

Cambiar al directorio donde se encuentra el source tree y ejecutar cvs update indicando la rama deseada (-release, -stable, o -current):

# cd /usr/src

Por ejemplo, para actualizar los fuentes a la rama estable 5.9:

# cvs up -rOPENBSD_5_9
cvs server: Updating .
cvs server: Updating bin
cvs server: Updating bin/cat
cvs server: Updating bin/chio
cvs server: Updating bin/chmod
cvs server: Updating bin/cp
cvs server: Updating bin/csh
cvs server: Updating bin/csh/USD.doc
cvs server: Updating bin/date
cvs server: Updating bin/dd
cvs server: Updating bin/df
cvs server: Updating bin/domainname
cvs server: Updating bin/echo
...

Referencias

OpenBSD Anonymous CVS

OpenBSD's flavors

OpenBSD -stable


Tal vez pueda interesarte


Compartí este artículo