Portage es un sistema de administración de paquetes creado y utilizado originalmente por Gentoo Linux y también por Chrome OS , Calculate , Sabayon y Funtoo Linux, entre otros. Portage se basa en el concepto de colecciones de puertos . A veces se hace referencia a Gentoo como una meta-distribución debido a la extrema flexibilidad de Portage, que lo hace independiente del sistema operativo. [2] [3] [4] [5] El proyecto Gentoo / Alt está relacionado con el uso de Portage para administrar otros sistemas operativos, como BSD ,macOS y Solaris . La más notable de estas implementaciones es el proyecto Gentoo / FreeBSD .
Lanzamiento estable | 3.0.18 / 29 de marzo de 2021 [1] |
---|---|
Repositorio | |
Escrito en | Pitón |
Sistema operativo | Gentoo Linux y Gentoo / FreeBSD , Chromium OS , Chrome OS , Sabayon , Funtoo Linux , Calculate Linux |
Plataforma | Compatible con POSIX / compatible con Python |
Tipo | Sistema de gestión de paquetes |
Licencia | Licencia pública general GNU v2 |
Sitio web | wiki |
Hay un esfuerzo continuo llamado el proyecto Package Manager Specification (PMS), [6] que tiene como objetivo estandarizar y documentar el comportamiento de Portage, permitiendo que el árbol ebuild y los paquetes del sistema Gentoo se utilicen con administradores de paquetes alternativos como Paludis y pkgcore. Su objetivo es especificar el conjunto exacto de características y comportamiento de los administradores de paquetes y ebuilds, sirviendo como referencia autorizada para Portage.
Descripción general
Accediendo a Portage
Portage es similar a la gestión de paquetes estilo BSD conocida como ports , y fue diseñado originalmente con los ports de FreeBSD en mente. [7] Portage está escrito en el lenguaje de programación Python y es la principal utilidad que define a Gentoo. Aunque el sistema en sí se conoce como Portage, consta de dos partes principales, el sistema ebuild y emerge . El sistema ebuild se encarga del trabajo real de construcción e instalación de paquetes, mientras que emerge proporciona una interfaz para ebuild: administrar un repositorio de ebuild, resolver dependencias y problemas similares. (Por lo tanto, estos dos tienen aproximadamente la misma relación que rpm tiene con yum , o dpkg tiene con APT ).
Una GUI basada en GTK + , Porthole , está disponible para trabajar con Portage. También está la GUI de Himerge , que significa "Interfaz Haskell para eMerge".
Funciones proporcionadas
Portage se caracteriza por su función principal: compilar a partir del código fuente los paquetes que el usuario desea instalar. Al hacerlo, permite la personalización del compilador y las opciones de la aplicación de destino para que se ajusten a las especificaciones del sistema y a los propios deseos del usuario. Las funcionalidades relacionadas con la administración del sistema incluyen: permitir la instalación paralela de la versión del paquete, rastrear las dependencias entre paquetes , administrar una base de datos de paquetes instalados, proporcionar un repositorio local de ebuild y sincronizar el árbol Portage local con repositorios remotos. Las funcionalidades relacionadas con la instalación de paquetes individuales incluyen: especificar la configuración de compilación para la máquina de destino y elegir los componentes del paquete.
Portage distingue entre tres niveles de estabilidad en los ebuilds: estable (p. Ej., El software funciona según lo previsto sin problemas de seguridad conocidos en el momento del lanzamiento), palabra clave enmascarada (principalmente para paquetes que no han sido suficientemente probados en la arquitectura del sistema de destino para ser considerados estable) y paquetes enmascarados (rotos o muy inseguros).
Características
Surgir
La herramienta de línea de comandos emerge es el corazón de Portage. El comando es personalizable con muchas opciones y modificadores. La herramienta emerge es la utilidad más importante para acceder a las funciones de Portage desde la línea de comandos .
El programa calcula y administra las dependencias, ejecuta ebuilds y mantiene el árbol Portage local y la base de datos de los paquetes instalados. La configuración de compilación utilizada por ebuilds se puede cambiar a través de la variable de entorno CFLAGS , según las especificaciones de la computadora individual y el deseo de optimización del usuario. La utilidad emerge ejecuta ebuilds en un entorno de espacio aislado . De esta manera, el sistema está protegido del software ejecutado por el ebuild y los binarios resultantes solo se fusionan después de una compilación exitosa y una instalación en espacio aislado.
Lo que emerge se instala como dependencias se ve afectado por la configuración de la bandera USE. Ellos deciden qué características opcionales se incluirán al instalar o actualizar una aplicación. El comando emerge también se puede utilizar para descargar e instalar archivos binarios precompilados.
USE banderas
El sistema Portage ofrece el uso de "banderas USE", que permiten a los usuarios indicar qué funciones de software les gustaría incluir (y excluir) al crear paquetes. Por ejemplo, hay un indicador USE para incluir soporte de DVD , cuando esté disponible, en paquetes compilados con el indicador habilitado. Los indicadores USE afectan qué dependencias se requieren, generalmente afectando qué características opcionales se integrarán en un programa dado cuando se compile. Por ejemplo, en paquetes que usan un script de configuración , el indicador USE feature
se traduciría en ./configure --with-feature
.
La especificación de los indicadores USE es la forma habitual de configurar programas en Gentoo. Los indicadores USE se pueden configurar manualmente o mediante herramientas fáciles de usar como 'ufed' (editor de indicadores USE), que enumera los indicadores junto con su descripción. Una lista de indicadores USE disponibles está disponible en el índice de indicadores USE del sitio web de Gentoo .
ebuild
Gentoo no usa, por defecto, paquetes binarios como lo hacen otros sistemas de administración de paquetes (como pacman ), empleando en su lugar un formato conocido como ebuild. Mientras que los binarios RPM están precompilados binarios , ebuilds son scripts de shell con variables y funciones que contienen una descripción del software y las instrucciones sobre cómo obtener, configurar, compilar e instalarlo, más estrechamente afín a (pero más potente que) el . archivos de especificaciones distribuidos en SRPM . [8] Hay más de 19.000 ebuilds disponibles, la mayoría de los cuales son distribuidos por los espejos de Gentoo . Se pueden obtener ebuilds nuevos y actualizados sincronizando el repositorio de ebuilds local con las réplicas. Esto se hace ejecutando el comando emerge --sync
. Históricamente, Gentoo ha proporcionado paquetes binarios precompilados para muchos programas comunes, especialmente aquellos que son largos de compilar, como Mozilla Firefox y OpenOffice.org . Estos todavía se instalan con emerge, simplemente agregando un "-bin" al nombre del paquete para instalar la versión binaria.
Ejemplo de ebuild para Terminator :
# Copyright 1999-2020 Autores de Gentoo # Distribuido bajo los términos de la Licencia Pública General GNU v2EAPI = 7PYTHON_COMPAT = ( python3_ { 6 , 7,8 } ) DISTUTILS_USE_SETUPTOOLS = "no"heredar distutils-r1 virtualx xdg-utilsDESCRIPCIÓN = "GNOME terminales múltiples en una sola ventana" PÁGINA DE INICIO = "https://github.com/gnome-terminator/terminator" SRC_URI = "https://github.com/gnome-terminator/terminator/releases/download/v $ { PV } / $ { P } .tar.gz "LICENCIA = "GPL-2" SLOT = "0" KEYWORDS = "amd64 ~ ppc x86" IUSE = "dbus + libnotify"RDEPEND = " > = dev-libs / glib-2.32: 2 dev-libs / keybinder: 3 [introspección] dev-python / configobj [ $ { PYTHON_USEDEP } ] dev-python / psutil [ $ { PYTHON_USEDEP } ] dev-python / pycairo [ $ { PYTHON_USEDEP } ] dev-python / pygobject: 3 [ $ { PYTHON_USEDEP } ] > = x11-libs / gtk + -3.16: 3 x11-libs / vte: 2.91 [introspección] dbus? (dev-python / dbus- python [ $ { PYTHON_USEDEP } ]) libnotify? (x11-libs / libnotify [introspección]) " BDEPEND = " dev-util / intltool "distutils_enable_tests setup.pyPATCHES = ( " $ { FILESDIR } " /terminator-1.91-without-icon-cache.patch " $ { FILESDIR } " /terminator-1.91-desktop.patch " $ { FILESDIR } " /terminator-1.92-make-tests- fail.patch " $ { FILESDIR } " /terminator-1.92-metainfo.patch )src_prepare () {xdg_environment_resetdistutils-r1_src_prepare}src_test () {virtx distutils-r1_src_test}pkg_postinst () {xdg_desktop_database_updatexdg_icon_cache_update}pkg_postrm () {xdg_desktop_database_updatexdg_icon_cache_update}
Paquetes binarios
Gentoo tiene un formato de empaquetado binario, que es un archivo .tbz2 ( tar con compresión bzip2 ) con metadatos adicionales . Esta característica permite la construcción de paquetes binarios en un sistema (usando Portage buildpkg
o quickpkg
) seguido de una instalación rápida en otros sistemas idénticos (con Portage getbinpkg
o emerge -K
). Consulte Funciones de Portage en el manual de Gentoo Linux para obtener más información.
Enmascaramiento
El enmascaramiento es la forma en que Gentoo determina qué paquetes son adecuados para un sistema. Los ebuilds diseñados para diferentes arquitecturas o software experimental generalmente están enmascarados de una manera que evita que un sistema estable los instale sin la intervención del usuario.
Los paquetes que generalmente sólo requieren algunas pruebas, pero a menudo funcionan bien se dice que son palabras clave enmascarados (es decir, que están disponibles para sistemas con una entrada ACCEPT_KEYWORDS make.conf que comienzan con el carácter ~
, como por ejemplo ~x86
, ~amd64
, ~ppc
). La forma estándar de desenmascarar un paquete enmascarado por palabra clave individual es agregando un archivo con el nombre completo del paquete y la palabra clave a /etc/portage/package.accept_keywords/
. Los usuarios también pueden crear subdirectorios aquí, lo que permite una organización personalizada. Por ejemplo, si un paquete enmascarado tiene varias dependencias enmascaradas, el usuario puede crear un directorio con el nombre del paquete enmascarado original y poner todos los archivos de máscara para el paquete y sus dependencias en ese directorio. Este esquema reemplaza el esquema anterior de tener /etc/portage/package.accept_keywords
una lista de archivos de texto.
Los paquetes con problemas conocidos o que no se consideran lo suficientemente maduros como para ser candidatos a estable están enmascarados por uno de los varios archivos package.mask en / usr / portage / profiles, y dichas entradas generalmente van acompañadas de un comentario de los desarrolladores que explica el motivo del error. máscara.
Gentoo / Alt
Gentoo / Alt es un proyecto creado para administrar la portabilidad del marco portage y otras características a otros sistemas operativos , como Mac OS X y los BSD gratuitos . Gentoo / Alt fue creado por Pieter Van den Abeele y Daniel Robbins después de que Pieter Van den Abeele fundara Gentoo para Mac OS X.
Mac OS X
Gentoo para Mac OS X fue el primer proyecto de Gentoo que no era Linux y se centró en hacer que la experiencia Gentoo estuviera disponible en el sistema operativo de Apple al presentar el sistema Portage como una entidad separada. Esto era más o menos similar a Fink y MacPorts , pero usaba Portage en lugar de un sistema similar a Debian o Ports. Más tarde, Gentoo para Mac OS X se convirtió en un subproyecto de Gentoo / Alt. El proyecto ya no está activo, porque su supuesto principal de usar y no modificar el sistema operativo host parecía no ser realista y finalmente rompió la mayoría de los paquetes o los hizo difícilmente mantenibles. Gentoo para Mac OS X ha sido reemplazado por Gentoo Prefix , que es actualmente lo que Gentoo ofrece a los usuarios de Mac OS X. [9]
El proyecto Prefix en Mac OS X está probado y es compatible con Mac OS X Tiger, Leopard y Snow Leopard en arquitecturas PowerPC , IA-32 y x86-64 . [10]
FreeBSD
Familia OS | Tipo Unix ( BSD ) |
---|---|
Estado de trabajo | Descatalogado [11] |
Modelo fuente | Fuente abierta |
Repositorio |
|
Gerente de empaquetación | Porteo |
Tipo de grano | Monolítico (kFreeBSD) [11] |
Userland | FreeBSD [11] |
Licencia | Varios |
Página web oficial | Gentoo / FreeBSD |
Gentoo / FreeBSD trae el diseño, la estructura y las herramientas de Gentoo Linux como Portage y el diseño base de Gentoo Linux al sistema operativo FreeBSD . Se utiliza la cadena de herramientas GNU de Gentoo en lugar del original de FreeBSD.
Aunque el proyecto ya no es mantenido por ningún desarrollador activo de Gentoo, hay instrucciones que permiten la instalación de un sistema completo Gentoo / FreeBSD. [11] Los ebuilds del sistema FreeBSD están integrados en el árbol de portage principal, pero este puerto está lejos de estar completo debido a la cantidad de paquetes que necesitan ser portados y la falta de un Live CD adecuado (el Live CD de FreeSBIE o el CD de configuración de FreeBSD se utiliza durante la instalación).
El logo (semi) oficial actual de Gentoo / FreeBSD es un "g" demonizado, derivado del logo original de Gentoo Linux e inspirado en el BSD Daemon . Fue diseñado por Marius Morawski, respondiendo a un concurso no oficial lanzado por Diego Elio Pettenò en su blog. [12]
NetBSD
Gentoo / NetBSD es un proyecto para proporcionar un área de usuario GNU administrada por Portage con un kernel NetBSD. El proyecto fue iniciado por Damian Florczyk. Solo se apunta a la arquitectura x86 y el sistema en su conjunto se encuentra en un estado incompleto.
OpenBSD
Familia OS | Tipo Unix ( BSD ) |
---|---|
Modelo fuente | Fuente abierta |
Último lanzamiento | Prefijo de Gentoo en OpenBSD / 4 de abril de 2011 |
Repositorio |
|
Gerente de empaquetación | Porteo |
Tipo de grano | Monolítico (kOpenBSD) |
Userland | OpenBSD |
Licencia | Varios |
Página web oficial | Gentoo / OpenBSD |
Gentoo / OpenBSD es un subproyecto Gentoo / * BSD para portar características de Gentoo como Portage al sistema operativo OpenBSD . Originalmente fue iniciado por Grant Goodyear y actualmente es [ ¿cuándo? ] en la pausa del desarrollo. Karol Pasternak mantiene actualmente una imagen ISO basada en OpenBSD 3.8 y se puede descargar desde el sitio web del proyecto.
DragonFlyBSD
Gentoo / DragonFlyBSD es actualmente [ ¿cuándo? ] puerto no oficial al kernel DragonFlyBSD . El proyecto es desarrollado por Robert Sebastian Gerus. [13]
GNU Hurd
También se estaba desarrollando un puerto no oficial para GNU Hurd , [14] pero fue abandonado a finales de 2006.
Androide
Dirigido por Benda Xu, "Gentoo RAP para dispositivos Android " instala una variante de Gentoo llamada Gentoo RAP en un prefijo de directorio junto con Android. [15] El kernel de Linux es utilizado tanto por Android como por Gentoo RAP. [15]
Interix
Gentoo / Interix (eprefix) es un puerto de Gentoo que se ejecuta sobre el Subsistema Interix para Windows, que también se conoce como Servicios de Microsoft Windows para UNIX (SFU) o Subsistema para Aplicaciones basadas en Unix (SUA). Un resultado del proyecto Gentoo / Interix es la capacidad de instalar y usar el sistema Portage para hacer emerger aplicaciones nativas de Windows (requiere Visual Studio, 2008 Express Edition también lo hará). Sin embargo, esta función no es compatible con la amplia variedad de paquetes admitidos por otras plataformas (incluido Interix).
Portaris
Un puerto no oficial para el sistema operativo Solaris , "Portaris", se anunció alrededor de 2006, pero nunca llegó a ser público. Fue reemplazado por el proyecto Gentoo Prefix.
Plan 9
Iniciado en 2011 como un proyecto de Google Summer of Code , Plan 9 para Gentoo toma la base de Gentoo y superpone un espacio de usuario inspirado en Plan 9 . [16] Los objetivos declarados del proyecto son tener un mejor soporte de hardware , mejor soporte de software y crear un "choque cultural" para las personas que han utilizado anteriormente sistemas Linux . [16] El proyecto es mantenido por Robert Seaton. [dieciséis]
Ver también
- pkgsrc
Referencias
- ^ "repo / gentoo.git" . gitweb.gentoo.org . Consultado el 30 de abril de 2021 .
- ^ "Acerca de Gentoo" . gentoo.org . Consultado el 23 de agosto de 2019 .
- ^ Mi sistema operativo de estación de trabajo: Gentoo | Sitio web de Tom Chance Archivado el 8 de julio de 2009 en la Wayback Machine.
- ^ Daniel Robbins (10 de octubre de 2002). "Gentoo Linux Reloaded - O'Reilly Media" . Consultado el 27 de mayo de 2015 .
- ^ "OSNews.com" . Consultado el 27 de mayo de 2015 .
- ^ "Proyecto: Especificación del administrador de paquetes" . wiki.gentoo.org . Consultado el 23 de agosto de 2019 .
- ^ Documentación de Gentoo Linux - Realización de la distribución, Parte 3 Archivado el 22 de diciembre de 2014 en Wayback Machine
- ^ "ebuild - Gentoo Wiki" . wiki.gentoo.org . Consultado el 17 de diciembre de 2019 .
- ^ Groffen, Fabián (15 de diciembre de 2005). "Objetivos del proyecto Gentoo para Mac OS X" . Archivado desde el original el 21 de mayo de 2008 . Consultado el 20 de julio de 2017 .
- ^ Groffen, Fabian (1 de junio de 2009). "Proceso de Bootstrap de Prefijos de Gentoo para Mac OS X" . Archivado desde el original el 19 de julio de 2009 . Consultado el 20 de julio de 2017 .
- ^ a b c d "Gentoo FreeBSD" . Wiki de Gentoo . 2018-08-20 . Consultado el 6 de marzo de 2019 .
- ^ Pettenò, Diego Elio (16 de julio de 2005). "Concurso de arte no tan oficial de Gentoo / FreeBSD" . Weblog de Flameeyes . Consultado el 20 de julio de 2017 .
- ^ Goodyear, Grant; Pettenò, Diego Elio (19 de octubre de 2006). "Gentoo / * BSD" . Archivado desde el original el 28 de diciembre de 2007 . Consultado el 20 de julio de 2017 .
- ^ "Gentoo GNU HURD" . Archivado desde el original el 9 de enero de 2010 . Consultado el 20 de julio de 2017 .
- ^ a b "Proyecto: Android - Gentoo Wiki" . Wiki.gentoo.org . 2016-01-13 . Consultado el 24 de septiembre de 2016 .
- ^ a b c Seaton, Robert (1 de agosto de 2011). "Plan 9 de Gentoo: Plan 9 se encuentra con Gentoo" . Archivado desde el original el 26 de abril de 2012 . Consultado el 20 de julio de 2017 .
enlaces externos
- Documentación oficial
- Documentación de Funtoo Portage [ ¿relevante? ]
- Funciones de Gentoo Portage
- Introducción a Gentoo Portage
- Trabajando con Portage
- Paquetes Gentoo , información sobre ebuilds disponibles actualmente
- Documentación no oficial
- Gentoo-Portage , presentación alternativa de información actual de ebuilds
- Usando Portage
- Instalación de portage en otras distribuciones de Linux
- Software similar
- Emerde, proyecto similar a portage para Slackware
- Pkgcore , bsd reimplementación de portage
- Paludis , un administrador de paquetes que se puede utilizar con ebuilds y otros formatos
- Arch Build System un sistema similar a puertos para Arch Linux