stringtranslate.com

Portaje (software)

Portage es un sistema de administración de paquetes creado y utilizado originalmente para Gentoo Linux y también para ChromeOS , Calculate , Sabayon y Funtoo Linux , entre otros. Portage se basa en el concepto de cobros portuarios . A veces se hace referencia a Gentoo como una metadistribución debido a la extrema flexibilidad de Portage, que lo hace independiente del sistema operativo . [2] [3] [4] [5] El proyecto Gentoo/Alt se ocupaba del 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 .

Existe un esfuerzo en curso llamado Proyecto de especificación del administrador de paquetes (PMS), [6] cuyo objetivo es 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

Interfaz gráfica tipo ojo de buey.

Portage es similar a la gestión de paquetes estilo BSD conocida como ports y fue diseñado originalmente teniendo en mente los ports de FreeBSD . [7] Portage está escrito en el lenguaje de programación Python y es la utilidad principal 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 construir e instalar 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 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 de las opciones del compilador y de la aplicación de destino para ajustarse a las especificaciones del sistema y los propios deseos del usuario. Las funcionalidades relacionadas con la administración del sistema incluyen: permitir la instalación paralela de versiones de paquetes, rastrear dependencias entre paquetes, administrar una base de datos de paquetes instalados, proporcionar un repositorio de ebuild local y sincronizar el árbol de 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 (por ejemplo, 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 se han probado lo suficiente en la arquitectura del sistema de destino como para ser considerados). estables) y paquetes con máscara dura (rotos o muy inseguros).

Características

Surgir

Separar el administrador de archivos SpaceFM

La herramienta de línea de comandos emerge es el corazón de Portage. El comando se puede personalizar 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 gestiona dependencias, ejecuta ebuilds y mantiene el árbol local de Portage y la base de datos de los paquetes instalados. La configuración de compilación utilizada por los 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 sandbox . De esta manera, el sistema está protegido del software ejecutado por 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 del indicador USE. Ellos deciden qué funciones 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.

USAR banderas

Portaje durante la actualización del sistema

El sistema Portage ofrece el uso de "indicadores USE", que permiten a los usuarios indicar qué funciones de software les gustaría incluir (y excluir) mientras crean paquetes. Por ejemplo, hay un indicador USE para incluir compatibilidad con DVD , cuando esté disponible, en paquetes compilados con el indicador habilitado. Los indicadores USE afectan qué dependencias se requieren y generalmente afectan qué características opcionales se integrarán en un programa determinado cuando se compila. Por ejemplo, en paquetes que utilizan un script de configuración , el indicador USE featurese traduciría a ./configure --with-feature.

La especificación de indicadores USE es la forma habitual de configurar programas en Gentoo. Las banderas USE se pueden configurar manualmente o mediante herramientas fáciles de usar como 'ufed' (editor de banderas USE), que enumera las banderas junto con su descripción. Una lista de banderas USE disponibles está disponible en el índice de banderas USE del sitio web de Gentoo.

construcción electrónica

Gentoo, por defecto, no utiliza paquetes binarios como lo hacen otros sistemas de gestión de paquetes (como pacman o apt), sino que emplea un formato conocido como ebuild. Mientras que los binarios RPM son binarios precompilados , los ebuilds son scripts de shell con variables y funciones que contienen una descripción del software e instrucciones sobre cómo obtenerlo, configurarlo, compilarlo e instalarlo, más parecido (pero más poderoso) al . Archivos de especificaciones distribuidos en SRPM . [8] El repositorio oficial proporciona más de 19.600 ebuilds, la mayoría de los cuales se distribuyen mediante mirrors de Gentoo . Se pueden obtener ebuilds nuevos y actualizados sincronizando los repositorios de ebuilds locales con los mirrors. Esto se hace ejecutando el comando emaint sync -a. Históricamente, Gentoo ha proporcionado paquetes binarios precompilados para muchos programas comunes, especialmente aquellos que requieren mucho tiempo de compilación, 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 GNOME Terminator :

# Copyright 1999-2020 Autores Gentoo # Distribuido bajo los términos de la Licencia Pública General GNU v2EAPI = 7PYTHON_COMPAT =(  python3_ { 6,7,8 } ) DISTUTILS_USE_SETUPTOOLS = " no"
hereda distutils-r1 virtualx xdg-utils    DESCRIPCIÓN = "Múltiples terminales GNOME en una ventana" HOMEPAGE = "https://github.com/gnome-terminator/terminator" SRC_URI = "https://github.com/gnome-terminator/terminator/releases/download/v $ { PV } / ${ P } .tar.gz"LICENCIA = "GPL-2" RANURA = "0" PALABRAS CLAVE = "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-sin-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_reset distutils-r1_src_prepare } src_test () { virtx distutils-r1_src_test }  pkg_postinst () { xdg_desktop_database_update xdg_icon_cache_update } pkg_postrm () { xdg_desktop_database_update xdg_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 creación de paquetes binarios en un sistema (usando Portage buildpkgo quickpkg) seguido de una instalación rápida en sistemas compatibles (con Portage getbinpkgo 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 suelen estar enmascarados de una manera que impide que un sistema estable los instale sin la intervención del usuario.

Se dice que los paquetes que generalmente sólo requieren algunas pruebas pero que a menudo funcionan bien están enmascarados por palabras clave (es decir, están disponibles para sistemas con una entrada ACCEPT_KEYWORDS make.conf que comienza con el carácter ~, como por ejemplo ~x86, ~amd64, ~ppc). Un paquete enmascarado con palabra clave individual se puede desenmascarar agregando una línea con el nombre completo del paquete y la palabra clave a algún archivo dentro del /etc/portage/package.accept_keywords/directorio. Los usuarios también pueden crear subdirectorios aquí, lo que permite una organización personalizada. Por ejemplo, si un paquete enmascarado tenía múltiples dependencias enmascaradas, el usuario podría crear un directorio con el nombre del paquete enmascarado original y colocar 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_keywordsun solo archivo de texto.

Los paquetes con problemas conocidos o que no se consideran lo suficientemente maduros para ser candidatos a estables están enmascarados por uno de los diversos archivos package.mask en /usr/portage/profiles, y dichas entradas generalmente van acompañadas de un comentario de los desarrolladores que explican el motivo del problema. mascarilla.


Gentoo/Alt

Gentoo/Alt es un proyecto creado para gestionar la migración del marco de 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 mediante la introducción del 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 anfitrión parecía no ser realista y finalmente rompió la mayoría de los paquetes o los hizo difíciles de mantener. Gentoo para Mac OS X ha sido reemplazado por Gentoo Prefix, que actualmente es 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

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 de la 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 Gentoo/FreeBSD completo. [11] Los ebuilds del sistema FreeBSD están integrados en el árbol principal de portage, pero este port está lejos de estar completo debido a la cantidad de paquetes que necesitan ser portados y a la falta de un Live CD adecuado (el Live CD de FreeSBIE o el CD de instalación de FreeBSD). se utiliza durante la instalación).

El logotipo actual (semi) oficial de Gentoo/FreeBSD es una "g" demonizada, derivada del logotipo original de Gentoo Linux e inspirada en BSD Daemon . Fue diseñado por Marius Morawski, respondiendo a un concurso no oficial lanzado por Diego Elio Pettenò en su blog. [13]

NetBSD

Gentoo/NetBSD es un proyecto para proporcionar un espacio de usuario GNU administrado 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

Gentoo/OpenBSD es un subproyecto de Gentoo/*BSD para portar características de Gentoo como Portage al sistema operativo OpenBSD . Fue iniciado originalmente por Grant Goodyear y actualmente es [ ¿cuándo? ] sobre la pausa en el 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 está desarrollado por Robert Sebastian Gerus. [14]

GNU Hurd

También se estaba desarrollando una adaptación no oficial a GNU Hurd , [15] pero fue abandonada 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. [16] El kernel de Linux es utilizado tanto por Android como por Gentoo RAP. [dieciséis]

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 utilizar el sistema Portage para generar aplicaciones nativas de Windows (requiere Visual Studio, 2008 Express Edition también será suficiente). Sin embargo, esta característica no es compatible con la amplia variedad de paquetes compatibles con otras plataformas (incluido Interix).

portaris

Alrededor de 2006 se anunció una adaptación no oficial al sistema operativo Solaris , "Portaris", pero nunca se hizo pública. Fue reemplazado por el proyecto Gentoo Prefix.

plano 9

Iniciado en 2011 como un proyecto de Google Summer of Code , Plan 9 For Gentoo toma la base de Gentoo y superpone un espacio de usuario inspirado en Plan 9 . [17] Los objetivos declarados del proyecto son tener un mejor soporte de hardware , un mejor soporte de software y crear un "choque cultural" para las personas que han utilizado anteriormente sistemas Linux . [17] El proyecto es mantenido por Robert Seaton. [17]

Ver también

Referencias

  1. ^ "repositorio/gentoo.git". gitweb.gentoo.org . Consultado el 11 de enero de 2024 .
  2. ^ "Acerca de Gentoo". gentoo.org . Archivado desde el original el 21 de diciembre de 2018 . Consultado el 23 de agosto de 2019 .
  3. ^ El sistema operativo de mi estación de trabajo: Gentoo | Sitio web de Tom Chance Archivado el 8 de julio de 2009 en Wayback Machine.
  4. ^ Daniel Robbins (10 de octubre de 2002). "Gentoo Linux recargado - O'Reilly Media". Archivado desde el original el 14 de octubre de 2017 . Consultado el 27 de mayo de 2015 .
  5. ^ "OSNews.com". Archivado desde el original el 29 de septiembre de 2007 . Consultado el 27 de mayo de 2015 .
  6. ^ "Proyecto: Especificación del administrador de paquetes". wiki.gentoo.org . Archivado desde el original el 8 de julio de 2019 . Consultado el 23 de agosto de 2019 .
  7. ^ Documentación de Gentoo Linux: realización de la distribución, parte 3 Archivado el 22 de diciembre de 2014 en Wayback Machine.
  8. ^ "ebuild - Gentoo Wiki". wiki.gentoo.org . Archivado desde el original el 17 de diciembre de 2019 . Consultado el 17 de diciembre de 2019 .
  9. ^ 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 .
  10. ^ Groffen, Fabián (1 de junio de 2009). "Proceso de arranque del prefijo Gentoo para Mac OS X". Archivado desde el original el 19 de julio de 2009 . Consultado el 20 de julio de 2017 .
  11. ^ abcd "Gentoo FreeBSD". Wiki Gentoo . 2018-08-20. Archivado desde el original el 6 de enero de 2014 . Consultado el 6 de marzo de 2019 .
  12. ^ "Índice de /experimental/bsd/freebsd/stages/amd64-fbsd-9.1". Distfiles.gentoo.org . 2013-07-07. Archivado desde el original el 27 de septiembre de 2016 . Consultado el 24 de septiembre de 2016 .
  13. ^ Pettenò, Diego Elio (16 de julio de 2005). "Concurso de ilustraciones no tan oficial de Gentoo/FreeBSD". Blog de Flameeyes . Archivado desde el original el 19 de abril de 2019 . Consultado el 20 de julio de 2017 .
  14. ^ Buen año, conceder; 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 .
  15. ^ "Gentoo GNU HURD". Archivado desde el original el 9 de enero de 2010 . Consultado el 20 de julio de 2017 .
  16. ^ ab "Proyecto: Android - Gentoo Wiki". Wiki.gentoo.org . 2016-01-13. Archivado desde el original el 24 de octubre de 2016 . Consultado el 24 de septiembre de 2016 .
  17. ^ abc Seaton, Robert (1 de agosto de 2011). "Plan 9 de Gentoo: el 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 no oficial
Software similar