De Wikipedia, la enciclopedia libre
  (Redirigido desde la gestión de paquetes )
Saltar a navegación Saltar a búsqueda

Synaptic , ejemplo de un administrador de paquetes con todas las funciones

Un administrador de paquetes o sistema de administración de paquetes es una colección de herramientas de software que automatiza el proceso de instalación, actualización, configuración y eliminación de programas de computadora para el sistema operativo de una computadora de manera consistente. [1]

Un administrador de paquetes se ocupa de los paquetes , las distribuciones de software y los datos en archivos de almacenamiento . Los paquetes contienen metadatos , como el nombre del software, la descripción de su propósito, el número de versión, el proveedor, la suma de comprobación (preferiblemente una función hash criptográfica ) y una lista de dependencias necesarias para que el software se ejecute correctamente. Tras la instalación, los metadatos se almacenan en una base de datos de paquetes local. Los administradores de paquetes suelen mantener una base de datos de dependencias de software e información de versión para evitar discrepancias de software y requisitos previos faltantes. Trabajan en estrecha colaboración con repositorios de software , administradores de repositorios binarios ytiendas de aplicaciones .

Los administradores de paquetes están diseñados para eliminar la necesidad de instalaciones y actualizaciones manuales. Esto puede resultar especialmente útil para las grandes empresas cuyos sistemas operativos suelen estar formados por cientos o incluso decenas de miles de paquetes de software distintos. [2]

Funciones [ editar ]

Ilustración de un administrador de paquetes que se utiliza para descargar software nuevo. Las acciones manuales pueden incluir aceptar un acuerdo de licencia o seleccionar algunas opciones de configuración específicas del paquete.

Un paquete de software es un archivo de almacenamiento que contiene un programa informático y los metadatos necesarios para su implementación. El programa de computadora puede estar en código fuente que debe compilarse y construirse primero. [3] Los metadatos del paquete incluyen la descripción del paquete, la versión del paquete y las dependencias (otros paquetes que deben instalarse de antemano).

Los administradores de paquetes están a cargo de la tarea de buscar, instalar, mantener o desinstalar paquetes de software por orden del usuario. Las funciones típicas de un sistema de gestión de paquetes incluyen:

  • Trabajar con archivadores de archivos para extraer archivos de paquetes
  • Asegurar la integridad y autenticidad del paquete verificando sus sumas de verificación y certificados digitales , respectivamente.
  • Buscar, descargar, instalar o actualizar software existente desde un repositorio de software o tienda de aplicaciones
  • Agrupar paquetes por función para reducir la confusión del usuario
  • Administrar las dependencias para garantizar que un paquete se instale con todos los paquetes que necesita, evitando así el " infierno de las dependencias "

Desafíos con las bibliotecas compartidas [ editar ]

Los sistemas informáticos que dependen de la vinculación dinámica de bibliotecas , en lugar de la vinculación estática de bibliotecas , comparten bibliotecas ejecutables de instrucciones de máquina entre paquetes y aplicaciones. En estos sistemas, las relaciones complejas entre diferentes paquetes que requieren diferentes versiones de bibliotecas dan como resultado un desafío conocido coloquialmente como " infierno de la dependencia ". En los sistemas Microsoft Windows , esto también se denomina " infierno de DLL " cuando se trabaja con bibliotecas vinculadas dinámicamente. Una buena gestión de paquetes es vital en estos sistemas. [4] El sistema Framework de OPENSTEP fue un intento de resolver este problema, permitiendo que se instalen múltiples versiones de bibliotecas simultáneamente y que los paquetes de software especifiquen con qué versión se vincularon.

Interfaces para paquetes compilados localmente [ editar ]

Los administradores del sistema pueden instalar y mantener el software utilizando herramientas distintas al software de administración de paquetes. Por ejemplo, un administrador local puede descargar el código fuente sin empaquetar, compilarlo e instalarlo. Esto puede provocar que el estado del sistema local no esté sincronizado con el estado de la base de datos del administrador de paquetes . El administrador local deberá tomar medidas adicionales, como administrar manualmente algunas dependencias o integrar los cambios en el administrador de paquetes.

Hay herramientas disponibles para garantizar que los paquetes compilados localmente se integren con la administración de paquetes. Para distribuciones basadas en archivos .deb y .rpm , así como Slackware Linux, existe CheckInstall , y para sistemas basados ​​en recetas como Gentoo Linux y sistemas híbridos como Arch Linux , es posible escribir una receta primero, lo que luego asegura que el paquete encaja en la base de datos de paquetes local. [ cita requerida ]

Mantenimiento de configuración [ editar ]

Particularmente problemáticos con las actualizaciones de software son las actualizaciones de los archivos de configuración. Dado que los administradores de paquetes, al menos en los sistemas Unix, se originaron como extensiones de las utilidades de archivo de archivos , generalmente solo pueden sobrescribir o retener archivos de configuración, en lugar de aplicarles reglas. Hay excepciones a esto, que generalmente se aplican a la configuración del kernel (que, si se rompe, inutilizará la computadora después de un reinicio). Pueden surgir problemas si cambia el formato de los archivos de configuración; por ejemplo, si el archivo de configuración anterior no deshabilita explícitamente las nuevas opciones que deberían deshabilitarse. Algunos administradores de paquetes, como el dpkg de Debian, permite la configuración durante la instalación. En otras situaciones, es deseable instalar paquetes con la configuración predeterminada y luego sobrescribir esta configuración, por ejemplo, en instalaciones sin cabeza en una gran cantidad de computadoras. Este tipo de instalación preconfigurada también es compatible con dpkg.

Repositorios [ editar ]

Para dar a los usuarios más control sobre los tipos de software que están permitiendo instalar en su sistema (y a veces por razones legales o de conveniencia por parte de los distribuidores), el software a menudo se descarga de varios repositorios de software . [5]

Actualización de supresión [ editar ]

Cuando un usuario interactúa con el software de administración de paquetes para llevar a cabo una actualización, es costumbre presentarle al usuario la lista de acciones a ejecutar (generalmente la lista de paquetes que se actualizarán y posiblemente dar los números de versión nueva y antigua). y permitir que el usuario acepte la actualización de forma masiva o seleccione paquetes individuales para las actualizaciones. Muchos administradores de paquetes se pueden configurar para que nunca actualicen ciertos paquetes, o para actualizarlos solo cuando se encuentren vulnerabilidades o inestabilidades críticas en la versión anterior, según lo definido por el empaquetador del software. Este proceso a veces se denomina anclaje de versión .

Por ejemplo:

  • yum admite esto con la sintaxis exclude = openoffice * [6]
  • pacman con IgnorePkg = openoffice [7] (para suprimir la actualización de openoffice en ambos casos)
  • dpkg y dselect admiten esto parcialmente a través del indicador de retención en las selecciones de paquetes
  • APT extiende la bandera de retención a través del complejo mecanismo de "fijación" [8] (los usuarios también pueden incluir un paquete en la lista negra [9] ).
  • aptitude tiene banderas de "mantener" y "prohibir"
  • portage admite esto a través del archivo de configuración package.mask

Eliminación de paquetes en cascada [ editar ]

Algunas de las funciones de administración de paquetes más avanzadas ofrecen "eliminación de paquetes en cascada", [7] en la que también se eliminan todos los paquetes que dependen del paquete de destino y todos los paquetes de los que sólo depende el paquete de destino.

Comparación de comandos [ editar ]

Aunque los comandos son específicos para cada administrador de paquetes en particular, son en gran medida traducibles, ya que la mayoría de los administradores de paquetes ofrecen funciones similares.

La wiki de Arch Linux Pacman / Rosetta ofrece una amplia descripción general. [11]

Prevalencia [ editar ]

Los administradores de paquetes como dpkg ya existían en 1994. [12]

Las distribuciones de Linux orientadas a paquetes binarios dependen en gran medida de los sistemas de administración de paquetes como su principal medio de administrar y mantener el software. Los sistemas operativos móviles como Android (basado en Linux), iOS ( similar a Unix ) y Windows Phone dependen casi exclusivamente de las tiendas de aplicaciones de sus respectivos proveedores y, por lo tanto, utilizan sus propios sistemas de administración de paquetes dedicados.

  • apt-get, una utilidad CLI que instala MediaWiki

  • Aptitude también incluye una TUI

  • Synaptic , una GUI para muchos administradores de paquetes de Linux

  • pacman, una utilidad CLI para distribuciones basadas en Arch

  • Octopi, una GUI de Qt para el administrador de paquetes de Pacman

  • Pamac, un GTK + GUI para el administrador de paquetes Pacman

  • Apper , una GUI de Qt para PackageKit

  • Software GNOME , una interfaz gráfica de usuario GTK + para PackageKit

  • winget, la utilidad CLI del Administrador de paquetes de Windows para Windows 10

Comparación con los instaladores [ editar ]

Un administrador de paquetes a menudo se denomina "administrador de instalación", lo que puede generar confusión entre los administradores de paquetes y los instaladores . Las diferencias incluyen:

Comparación con la utilidad de automatización de compilación [ editar ]

La mayoría de los sistemas de administración de configuración de software tratan el software de construcción y el software de implementación como pasos separados e independientes. Una utilidad de automatización de compilación generalmente toma archivos de código fuente legibles por humanos que ya están en una computadora y automatiza el proceso de convertirlos en un paquete ejecutable binario en la misma computadora. Más tarde, un administrador de paquetes que normalmente se ejecuta en otra computadora descarga esos paquetes ejecutables binarios preconstruidos a través de Internet y los instala.

Sin embargo, ambos tipos de herramientas tienen muchos puntos en común:

  • Por ejemplo, la clasificación topológica del gráfico de dependencia que se usa en un administrador de paquetes para manejar las dependencias entre componentes binarios también se usa en un administrador de compilación para manejar la dependencia entre los componentes de origen.
  • Por ejemplo, muchos archivos MAKE admiten no solo la creación de ejecutables, sino también su instalación con make install.
  • Por ejemplo, cada administrador de paquetes para una distribución basada en fuentes ( Portage , Sorcery , Homebrew , etc.) admite la conversión de código fuente legible por humanos en ejecutables binarios y su instalación.

Algunas herramientas, como Maak y AAP , están diseñadas para manejar tanto la construcción como la implementación, y se pueden usar como una utilidad de automatización de compilación o como administrador de paquetes o ambos. [13]

Formatos y administradores de paquetes comunes [ editar ]

Administrador de paquetes universal [ editar ]

También conocido como administrador de repositorio binario , es una herramienta de software diseñada para optimizar la descarga y el almacenamiento de archivos binarios, artefactos y paquetes utilizados y producidos en el proceso de desarrollo de software . [14] Estos administradores de paquetes tienen como objetivo estandarizar la forma en que las empresas tratan todos los tipos de paquetes. Brindan a los usuarios la capacidad de aplicar métricas de seguridad y cumplimiento en todos los tipos de artefactos. Se ha hecho referencia a los administradores de paquetes universales como el centro de una cadena de herramientas de DevOps . [15]

Formatos de paquete [ editar ]

Cada administrador de paquetes se basa en el formato y los metadatos de los paquetes que puede administrar. Es decir, los administradores de paquetes necesitan que se agrupen grupos de archivos para el administrador de paquetes específico junto con los metadatos adecuados, como las dependencias. A menudo, un conjunto básico de utilidades administra la instalación básica de estos paquetes y varios administradores de paquetes utilizan estas utilidades para proporcionar funcionalidad adicional.

Por ejemplo, yum se basa en rpm como backend. Yum amplía la funcionalidad del backend agregando características como una configuración simple para mantener una red de sistemas. Como otro ejemplo, Synaptic Package Manager proporciona una interfaz gráfica de usuario mediante el uso de la biblioteca Advanced Packaging Tool (apt) , que, a su vez, se basa en dpkg para la funcionalidad principal.

Extranjero es un programa que realiza la conversión entre diferentes formatos de paquetes de Linux , el apoyo a la conversión entre Linux Standard Base (LSB) compatibles .rpm paquetes, .deb , Estampida (.slp), Solaris (.pkg) y Slackware ( .tgz , .txz ,. tbz, .tlz) paquetes.

En los sistemas operativos móviles, Google Play consume el formato de paquete de paquetes de aplicaciones de Android (APK), mientras que Windows Store usa los formatos APPX y XAP . (Tanto Google Play como Windows Store tienen administradores de paquetes del mismo nombre).

Sistemas de software gratuitos y de código abierto [ editar ]

Por la naturaleza del software gratuito y de código abierto, los paquetes con licencias similares y compatibles están disponibles para su uso en varios sistemas operativos. Estos paquetes se pueden combinar y distribuir utilizando sistemas de empaquetado configurables e internamente complejos para manejar muchas permutaciones de software y administrar las dependencias y conflictos específicos de la versión. Algunos sistemas de empaquetado de software libre y de código abierto también se lanzan como software libre y de código abierto. Una diferencia típica entre la gestión de paquetes en sistemas operativos propietarios, como Mac OS X y Windows, y los de software libre y de código abierto, como Linux, es que los sistemas de software de código abierto y gratuito permiten que también se instalen y se instalen paquetes de terceros. actualizado mediante el mismo mecanismo, mientras que los administradores de paquetes de Mac OS X y Windows solo actualizarán el software proporcionado por Apple y Microsoft,respectivamente (con la excepción de algunos controladores de terceros en Windows). La capacidad de actualizar continuamente el software de terceros generalmente se agrega agregando elURL del repositorio correspondiente al archivo de configuración de la gestión de paquetes.

Administradores de paquetes a nivel de aplicación [ editar ]

Además de los administradores de aplicaciones a nivel de sistema, existen algunos administradores de paquetes complementarios para sistemas operativos con capacidades limitadas y para lenguajes de programación en los que los desarrolladores necesitan las últimas bibliotecas .

A diferencia de los administradores de paquetes a nivel de sistema, los administradores de paquetes a nivel de aplicación se centran en una pequeña parte del sistema de software. Por lo general, residen dentro de un árbol de directorios que no es mantenido por el administrador de paquetes a nivel del sistema, como c: \ cygwin o / usr / local / fink . Sin embargo, este podría no ser el caso de los administradores de paquetes que se ocupan de las bibliotecas de programación, lo que lleva a un posible conflicto, ya que ambos administradores de paquetes pueden afirmar que "poseen" un archivo y podrían interrumpir las actualizaciones.

Impacto [ editar ]

Ian Murdock había comentado que la gestión de paquetes es "el mayor avance que Linux ha traído a la industria", que difumina los límites entre el sistema operativo y las aplicaciones y que hace que "sea más fácil introducir nuevas innovaciones en el marketplace y [...] evolucionar el SO ". [dieciséis]

Ver también [ editar ]

  • AppStream
  • Flatpak
  • Instalación (programas de computadora)
  • InstallShield
  • Lista de sistemas de gestión de paquetes de software
  • Formato de paquete
  • Snap (administrador de paquetes)
  • instalador de ventanas

Referencias [ editar ]

  1. ^ "¿Qué es un administrador de paquetes?" . Archivado desde el original el 17 de octubre de 2017 . Consultado el 19 de diciembre de 2018 .
  2. ^ "Distribución de software" . Dell KACE. Archivado desde el original el 3 de octubre de 2015 . Consultado el 11 de julio de 2012 .
  3. ^ Ludovic Courtès, Functional Package Management with Guix , junio de 2013, Madrid, European Lisp Symposium 2013
  4. ^ Tucker, Chris (15 de marzo de 2007). "OPIUM: Administrador de instalación / desinstalación de paquetes óptimos" (PDF) . Actas de la 29ª conferencia internacional de Ingeniería de Software - Conferencias ACM . UC San Diego: 1. doi : 10.1109 / ICSE.2007.59 . Consultado el 14 de septiembre de 2011 .
  5. ^ "Esquemas de clasificación de repositorios de Linux" . braintickle.blogspot.com . Consultado el 1 de marzo de 2008 .
  6. ^ "CentOS yum fijando rpms" . centos.org. Archivado desde el original el 2 de noviembre de 2007 . Consultado el 1 de marzo de 2008 .CS1 maint: URL no apta ( enlace )
  7. ^ a b "Página del manual de pacman (8)" . archlinux.org . Consultado el 1 de marzo de 2008 .
  8. ^ "Cómo mantener instaladas versiones específicas de paquetes (complejo)" . debian.org . Consultado el 1 de marzo de 2008 .
  9. ^ "Apto para fijar un paquete en la lista negra" . Archivado desde el original el 22 de julio de 2011 . Consultado el 19 de agosto de 2010 .
  10. ^ "documentación / sles11" . en.opensuse.org .
  11. ^ "Pacman / Rosetta - ArchWiki" . wiki.archlinux.org . Consultado el 17 de septiembre de 2017 .
  12. ^ "código fuente de la versión 0.93.15 de dpkg" . Archivado desde el original el 2 de abril de 2015 . Consultado el 19 de diciembre de 2018 .
  13. ^ Eelco Dolstra, "Integración de la construcción de software y la implementación de software" .
  14. ^ Waters, John K. (8 de septiembre de 2015). "JFrog lanza el repositorio de artefactos 'Universal'" . ADT Mag . Revista Tendencias de desarrollo de aplicaciones.
  15. ^ Decoster, Xavier (18 de agosto de 2013). "Una descripción general del ecosistema NuGet" . CodeProject.com .
  16. ^ "Cómo la gestión de paquetes cambió todo" . ianmurdock.com. Archivado desde el original el 23 de febrero de 2009 . Consultado el 1 de marzo de 2008 .

Enlaces externos [ editar ]

  • Hoja de referencia de gestión de paquetes (Distrowatch)
  • ArchLinux Rosetta Stone - Comparación de línea de comandos para administradores de paquetes
  • gestor de paquetes universal upkg un contenedor que proporciona la misma sintaxis para todos los tipos de Linux