Las colecciones de ports (o árboles de ports , o simplemente ports ) son los conjuntos de makefiles y parches proporcionados por los sistemas operativos basados en BSD , FreeBSD , NetBSD y OpenBSD , como un método simple de instalar software o crear paquetes binarios. Suelen ser la base de un sistema de gestión de paquetes , con ports que manejan la creación de paquetes y herramientas adicionales que gestionan la eliminación de paquetes, la actualización y otras tareas. Además de los BSD, algunas distribuciones de Linux han implementado una infraestructura similar , incluyendo Portage de Gentoo , Arch Build System (ABS) de Arch , Ports de CRUX y Templates de Void Linux .
La principal ventaja del sistema de ports en comparación con un modelo de distribución binario es que la instalación se puede ajustar y optimizar según los recursos disponibles. Por ejemplo, el administrador del sistema puede instalar fácilmente una versión de 32 bits de un paquete si la versión de 64 bits no está disponible o no está optimizada para esa máquina. Por el contrario, la principal desventaja es el tiempo de compilación, que puede ser significativo. Por ejemplo, una instalación completa de un sistema FreeBSD, utilizando ports, puede tardar varios días, dependiendo del hardware.
Jordan Hubbard envió sus macros de creación de puertos al repositorio CVS de FreeBSD el 21 de agosto de 1994. [1] Su paquete de instalación de paquetes Makefile había sido enviado un año antes (el 26 de agosto de 1993). [2] El marco de trabajo de puertos principal fue mantenido inicialmente por Hubbard junto con Satoshi Asami durante varios años. Posteriormente se formó el Equipo de Gestión de Puertos para manejar esta tarea.
La colección de ports pkgsrc de NetBSD se distingue por su objetivo de ser portable y utilizable en varios sistemas operativos además del propio NetBSD, incluidos otros BSD, SmartOS / illumos , macOS , [3] MINIX 3 , Linux [4] y otros sistemas similares a Unix . pkgsrc se creó en agosto de 1997 basándose en el sistema de ports existente de FreeBSD. Sigue un programa de lanzamiento trimestral y, a octubre de 2018, contiene más de 22 000 paquetes. Con su lanzamiento 1.4, DragonFly BSD anunció que adoptaría pkgsrc como su sistema oficial de gestión de paquetes. [5] Sin embargo, DragonFly BSD creó su propia implementación de ports llamada dports con el lanzamiento 3.4 [6] y se cambió a ella por completo con 3.6. El desarrollo se realiza a través de su git. [7]
A diferencia de los Ports de FreeBSD , en los que se basaba originalmente, el sistema de ports de OpenBSD está pensado como una fuente utilizada para crear el producto final, los paquetes : al instalar un port primero se crea un paquete y luego se instala. Los ports se componen de un makefile, archivos de texto con descripciones y mensajes de instalación, cualquier parche necesario para ajustar el programa para que funcione en OpenBSD y una lista de empaquetado que enumera los archivos que se incluirán en los paquetes. El árbol de ports utiliza un conjunto de makefiles estándar, algunos de los cuales se comparten con el árbol de código fuente , para proporcionar la mayor parte de su funcionalidad; esta infraestructura compartida incluye muchas funciones de utilidad para los desarrolladores de ports y significa que los ports a menudo se pueden hacer de forma muy sencilla.
A finales de octubre de 2007, el desarrollador de OpenBSD Nikolay Sturm anunció que el árbol de puertos -stable debía considerarse sin mantenimiento debido a la falta de recursos. Esto obligó a los usuarios a ejecutar el árbol de puertos -current/base para mantenerse al día con las actualizaciones de seguridad. En 2009, se decidió revivir el árbol de puertos -stable bajo la supervisión de Robert Nagy y Jasper Lievisse Adriaanse. [8]
Hay tres sitios web no oficiales con una lista de puertos y paquetes de OpenBSD: