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