Este artículo explica cómo compilar un sistema OpenBSD desde sus fuentes. Existen varios pasos a seguir en el proceso de compilación de un sistema OpenBSD: descargar y actualizar los fuentes; compilar e instalar el kernel; y compilar e instalar userland.



Si no se dispone de los fuentes instalados, el primer paso consiste en descargarlos e instalarlos.

Instalación de los fuentes de OpenBSD

Para ello se debe escoger un mirror, y descargarlos utilizando el protocolo FTP:

# ftp ftp://openbsd.c3sl.ufpr.br/pub/OpenBSD/5.9/src.tar.gz
# ftp ftp://openbsd.c3sl.ufpr.br/pub/OpenBSD/5.9/sys.tar.gz

Una vez descargados, se deben instalar dentro del directorio /usr (al igual que FreeBSD). El archivo src.tar.gz contiene los fuentes del software de nivel usuario (userland), mientras que sys.tar.gz contiene los fuentes del kernel:

# ls -lh *gz
-rw-r--r--  1 root  wheel   121M Apr 27 10:58 src.tar.gz
-rw-r--r--  1 root  wheel  19.5M May  3 09:32 sys.tar.gz

Cambiar al directorio /usr y descomprimir el archivo src.tar.gz:

# cd /usr
# tar xzvf /root/src.tar.gz

Luego cambiar a /usr/src y descomprimir sys.tar.gz:

# cd src
# tar xzvf /root/sys.tar.gz

Actualización de los fuentes a la versión stable

Por último, es posible actualizar los fuentes de OpenBSD a la versión stable, ya que los fuentes descargados por FTP corresponden con la versión release:

# cd /usr/src
# cvs up -rOPENBSD_5_9

Compilación del kernel y userland

Primero se debe compilar el kernel. Cambiar al directorio correspondiente a la arquitectura de nuestro sistema ("amd64" para arquitecturas Intel de 64 bit):

# cd sys/arch/amd64/conf/

Y luego configurar, compilar e instalar el kernel:

# config GENERIC.MP
# cd ../compile/GENERIC.MP/
# make clean && make && make install

Finalmente, reiniciar el sistema para iniciar con el nuevo kernel:

# reboot

La salida de uname muestra que se ha iniciado correctamente con el nuevo kernel:

# uname -a
OpenBSD obsd59.linuxito.com 5.9 GENERIC.MP#0 amd64

El kernel de OpenBSD es el archivo /bsd:

# ls -l /bsd*
-rwxr-xr-x  1 root  wheel  10289961 May  9 12:20 /bsd
-rw-r--r--  1 root  wheel  10289961 Apr 25 08:48 /bsd.mp
-rw-r--r--  1 root  wheel   7763412 Apr 25 08:48 /bsd.rd

En este caso se ha compilado e instalado el kernel MP (multi-processor), el cual corresponde con el archivo /bsd.mp.

Al ser la primera vez que se compila userland, el directorio /usr/obj se encuentra vacío:

# ls -la /usr/obj/
total 8
drwxrwxr-x   2 root  wsrc   512 Feb 26 05:07 .
drwxr-xr-x  17 root  wheel  512 May  9 11:11 ..
#

Si tiene archivos, se recomienda guardar una copia y borrar su contenido.

Compilar e instalar userland:

# cd /usr/scr/
# make obj
# cd /usr/src/etc && env DESTDIR=/ make distrib-dirs
# cd /usr/src
# make build

Finalmente, correr sysmerge para actualizar los archivos de configuración.

Referencias

man ftp
man release
man sysmerge

Anonymous CVS - Using CVS to Get and Update Your Source Tree

Anonymous CVS - Available Anonymous CVS Servers

OpenBSD FAQ - Building the System from Source

OpenBSD manual pages - release

OpenBSD's flavors


Tal vez pueda interesarte


Compartí este artículo