Las colecciones de puertos (o árboles de puertos , o simplemente puertos ) son conjuntos de makefiles y parches proporcionados por los sistemas operativos basados en BSD , FreeBSD , NetBSD y OpenBSD , como un método sencillo para instalar software o crear paquetes binarios. Suelen ser la base de un sistema de gestión de paquetes , donde los puertos se encargan de la creación de paquetes y herramientas adicionales gestionan la eliminación, actualización y otras tareas relacionadas con los paquetes. Además de los sistemas BSD, algunas distribuciones de Linux han implementado una infraestructura similar , como Portage de Gentoo , Arch Build System (ABS) de Arch , Ports de CRUX y Templates de Void Linux .
La principal ventaja del sistema de puertos, en comparación con un modelo de distribución binaria, 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 otro lado, la principal desventaja es el tiempo de compilación, que puede ser considerable. Por ejemplo, una instalación completa de un sistema FreeBSD mediante puertos puede tardar varios días, dependiendo del hardware.
Puertos de FreeBSD
Jordan Hubbard subió sus macros de compilación de puertos al repositorio CVS de FreeBSD el 21 de agosto de 1994. [ 1 ] Su archivo Makefile para la instalación de paquetes se había subido un año antes (26 de agosto de 1993). [ 2 ] El marco principal de puertos fue mantenido inicialmente por Hubbard junto con Satoshi Asami durante varios años. Posteriormente se formó el Equipo de Gestión de Puertos para encargarse de esta tarea.
pkgsrc de NetBSD
La colección de puertos pkgsrc de NetBSD es distintiva porque busca ser portátil y se puede usar en varios sistemas operativos además del propio NetBSD, incluyendo otros BSD, SmartOS / illumos , macOS , [ 3 ] MINIX 3 , Linux [ 4 ] y otros sistemas tipo Unix . pkgsrc se creó en agosto de 1997 basándose en el sistema de puertos existente de FreeBSD. Sigue un calendario 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 puertos llamada dports con el lanzamiento 3.4 [ 6 ] y la adoptó completamente con el 3.6. El desarrollo se realiza a través de su git. [ 7 ]
Puertos de OpenBSD
A diferencia de FreeBSD Ports , en el que se basó originalmente, el sistema de puertos de OpenBSD está diseñado como una fuente para crear el producto final, los paquetes : al instalar un puerto, primero se crea un paquete y luego se instala. Los puertos se componen de un archivo makefile, archivos de texto con descripciones y mensajes de instalación, los parches necesarios para adaptar el programa a 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 makefile 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 puertos y significa que, a menudo, los puertos se pueden crear 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 -current ports/base para mantenerse al día con las actualizaciones de seguridad. En 2009, se decidió reactivar 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:
- puertos abiertos.pl
- OpenPorts.se , anunciado originalmente como ports.openbsd.nu en 2006, [ 9 ] era un sitio web personalizado que realizaba su propio análisis de la estructura del árbol de puertos y las actualizaciones, y tenía la funcionalidad de rastrear los cambios de un puerto determinado, pero tenía la desventaja de no admitir algunas de las lógicas más complejas de Makefile, y por lo tanto, le faltaba alrededor del 15 % de los paquetes que requieren un conocimiento detallado de la estructura del árbol de puertos y el uso de las herramientas oficiales. [ 10 ] El proyecto se descontinuó en enero de 2023. [ 11 ]
- ports.su , anunciado en febrero de 2013, se basa en la base de datos oficial sqlports [ 12 ] , lo que permite una colección completa de todos los paquetes y variantes disponibles para la plataforma amd64. Al basarse en las herramientas oficiales, las categorías "virtuales" (no primarias) están fácilmente disponibles, al igual que la información sobre las dependencias de biblioteca, compilación y ejecución. El código fuente del sitio web se basa en gran medida en el port ports-readmes y está disponible en GitHub . El proyecto dejó de actualizarse en noviembre de 2018.
Véase también
- Android Runtime realiza la compilación anticipada durante la instalación.
- MacPorts , utilizado en macOS . El nombre y el diseño se basan en el sistema de puertos.
- Portage (software) , utilizado en Gentoo Linux e inspirado en el sistema de puertos.
Referencias
- ↑ "Registro CVS para ports/Mk/bsd.port.mk" . Proyecto FreeBSD . Consultado el 26 de mayo de 2018 .
{{cite web}}: CS1 maint: servicio de archivado obsoleto ( enlace ) - ↑ "Registro CVS para src/usr.sbin/pkg_install/Makefile" . Proyecto FreeBSD.
{{cite web}}: CS1 maint: servicio de archivado obsoleto ( enlace ) - ↑ "Documentación de paquetes de Joyent - Instalación en macOS" . Joyent . Archivado del original el 6 de octubre de 2018. Consultado el 10 de octubre de 2018 .
- ↑ "Documentación de paquetes de Joyent - Instalación en Linux" . Joyent . Archivado del original el 6 de octubre de 2018. Consultado el 10 de octubre de 2018 .
- ↑ Dillon, Matthew. "PKGSRC será compatible oficialmente a partir de la próxima versión" . Archivado del original el 9 de septiembre de 2015. Consultado el 23 de enero de 2008 .
- ↑ Sherrill, Justin. "Planificación del lanzamiento de DragonFly 3.4" . Archivado del original el 10 de marzo de 2016. Consultado el 5 de mayo de 2016 .
- ↑ "GitHub - DragonFlyBSD/DPorts: El sistema de compilación de aplicaciones dedicado para DragonFly BSD" . GitHub . Archivado del original el 11 de junio de 2018. Consultado el 8 de julio de 2014 .
- ↑ Yodlowsky, William. "4.6-stable ports" . Archivado del original el 12 de junio de 2011. Consultado el 29 de diciembre de 2009 .
- ↑ "ports.openbsd.nu - interfaz para ports" . OpenBSD Journal . 9 de agosto de 2006. Archivado del original el 27 de mayo de 2018. Consultado el 26 de mayo de 2018 .
- ↑ Espie, Marc (2013-06-07). "Re: ¿Por qué no hay pkg_find(1)?" . Archivado del original el 2022-04-10 . Recuperado el 2018-05-26 .
- ↑ "Es hora de decir adiós" . 30 de enero de 2023. Archivado del original el 14 de febrero de 2008. Consultado el 2 de noviembre de 2023 .
- ↑ "Presentamos ports.su: espejo de ports-readmes y búsqueda de puertos" . OpenBSD Journal . 2 de mayo de 2013. Archivado del original el 27 de mayo de 2018. Consultado el 26 de mayo de 2018 .
Enlaces externos
- Manual del desarrollador de OpenBSD
- Puertos de OpenBSD
- La página de manual de puertos de OpenBSD
- Puertos de FreeBSD
- pkgsrc: La colección de paquetes de NetBSD
- Las ideas detrás de Compile
- Distribución de software de Berkeley
- Sistemas de gestión de paquetes gratuitos