Este documento explica los FreeBSD ports, que es una colección de directorios que contienen la información necesaria para descargar, compilar e instalar software de terceros en FreeBSD de forma automatizada. Los ports siguen un proceso estandarizado que incluye descargar el código fuente, aplicar parches, compilar el software y crear paquetes de instalación. Los archivos Makefile guían este proceso y cada port contiene la información necesaria como checksums, parches y listas de archivos.
2. FreeBSD ports. ¿Qué es? (I)
● Es una forma de instalar software de
terceros
● Es la base para crear repositorios de
paquetes binarios
● Si has usado Gentoo, es como el portage
3. FreeBSD ports. ¿Qué es? (II)
● Colección clasificada de directorios bajo
/usr/ports/
● Sólo se compone de un esqueleto que
indica cómo descargarse, compilar e
instalar el software
● Basado en Makefiles (ouch!)
7. Behind the scenes (II)
5. Compilar el software
6. Crear el paquete
7. Instalar el paquete
8. ¿De qué se compone un port?
● Makefile → Donde están las reglas que guían el proceso
● distinfo → Checksum de la distribución (autogenerado)
● files/ → Directorio con parches (puede no existir)
● pkg-descr → Descripción del paquete
● pkg-plist → Ficheros que se instalarán (autogenerado)
9. Makefile
● Conjunto de variables
● Conjunto de targets: fetch, extract, patch,
install…
● Algo de lógica (if, for…)
10.
11. Ha sido sencillo ¿no?
● Casuística infinita
● Muchos linuxismos.
● Software no pensado para ser portable
● Dependencias (build, run)
● Tiene que ser aceptado por algún committer.
● Ciclo send-review-change.
12. Buenas prácticas
● Utilizar poudriere / tinderbox / redports.org
● Intentar testear con todas las opciones
disponibles.
● Enviar parches upstream