Las colecciones de puertos (o árboles de puertos , o simplemente puertos ) son conjuntos de archivos MAKE y parches proporcionados por los sistemas operativos basados en BSD , FreeBSD , NetBSD y OpenBSD , como un método simple para instalar software o crear paquetes binarios. Por lo general, son la base de un sistema de administración de paquetes , con puertos que manejan la creación de paquetes y herramientas adicionales que administran la eliminación, actualización y otras tareas de paquetes. Además de los BSD, algunas distribuciones de Linux han implementado una infraestructura similar , incluido Portage de Gentoo , Arch Build System (ABS) de Arch , Ports de CRUX y Templates de Void Linux .
La principal ventaja del sistema de puertos frente a un modelo de distribución binaria es que la instalación se puede sintonizar y optimizar en función de 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 puertos, puede tardar varios días, dependiendo del hardware.
Jordan Hubbard envió sus macros port make al repositorio CVS de FreeBSD el 21 de agosto de 1994. [1] Su paquete de instalación Makefile se había enviado un año antes (26 de agosto de 1993). [2] Al principio, Hubbard mantuvo el marco de puertos principales junto con Satoshi Asami durante varios años. Posteriormente se formó el Equipo de Gestión de Puertos para encargarse de esta tarea.
La colección de ports pkgsrc de NetBSD se distingue porque pretende ser portátil y utilizable en varios sistemas operativos además del propio NetBSD, incluidos los otros BSD, SmartOS / illumos , macOS , [3] MINIX 3 , Linux [4] y otros. Me gusta Unix . pkgsrc fue creado en agosto de 1997 basándose en el sistema de ports de FreeBSD existente. Sigue un calendario de lanzamiento trimestral y, a octubre de 2018, contiene más de 22.000 paquetes. Con su versión 1.4, DragonFly BSD anunció que adoptarían pkgsrc como su sistema oficial de gestión de paquetes. [5] Sin embargo, DragonFly BSD construyó su propia implementación de ports llamada dports con la versión 3.4 [6] y la cambió por completo con 3.6. El desarrollo se realiza a través de su git. [7]
A diferencia de FreeBSD Ports , en el que se basó originalmente, el sistema de ports de OpenBSD está pensado como una fuente utilizada para crear el producto final, los paquetes : la instalación de un port primero crea un paquete y luego lo instala. Los puertos se componen de un archivo MAKE, 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 empaque que enumera los archivos que se incluirán en los paquetes. El árbol de puertos utiliza un conjunto de archivos MAKE estándar, algunos de los cuales se comparten con el árbol de origen , para proporcionar la mayor parte de su funcionalidad; Esta infraestructura compartida incluye muchas funciones de utilidad para los desarrolladores de puertos y significa que los puertos a menudo se pueden crear de manera muy simple.
A finales de octubre de 2007, el desarrollador de OpenBSD, Nikolay Sturm, anunció que el árbol de puertos estables debería considerarse sin mantenimiento debido a la falta de recursos. Esto efectivamente obligó a los usuarios a ejecutar el árbol base/puertos actuales para mantenerse al día con las actualizaciones de seguridad. En 2009 se decidió reactivar el árbol de puertos estables 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: