Formatos de paquetes en GNU/Linux

diferentes formatos de archivo usados por los paquetes de software de GNU/Linux

Un Formato de paquetes en GNU/Linux, es un tipo de archivo que contiene programas de ordenador y metadatos que necesitan los gestores de paquetes para su funcionamiento e instalación de software[1]

Icono presentado con los paquetes .tar.gz en GNOME

Si bien el formato de archivo de almacenamiento en sí puede no cambiar, los formatos de paquete contienen metadatos adicionales, como un archivo de manifiesto o ciertos diseños de directorio.

Los paquetes pueden contener código fuente o archivos ejecutables/binarios. Los paquetes se pueden convertir de un tipo a otro con softwares como Alien.

Los paquetes existentes en GNU/Linux, son dependientes de la distribución en la que se estén usando; son usados comúnmente para la compresión de aplicaciones en diferentes formatos para distintos medios de instalación. Estos son un conjunto de ficheros que contienen instrucciones para la reconstrucción de la aplicación dentro del sistema nuevo, dentro de estos, podemos encontrar, Paquetes Binarios y Paquetes de código Fuente.

Los Paquetes Binarios, contienen, como se menciona, la información necesaria para reconstruir una aplicación en un sistema nuevo, sin necesidad de encontrarse en el mismo ordenador/computador(a).

Formatos especializados editar

Nombre Formato (Sigla) Utilizado por / Descripción
.apk Alpine Linux usa el Alpine package manager, apk-tools[2]​, el cual fue originalmente era una colección de scripts de shell[3]​, pero más tarde fue reescribió en C.[4]
AppImage Independiente de la distribución Linux. (Binario autónomo)
.deb

Contienen ejecutables, archivos de configuración, páginas de información, derechos de copyright y otras documentaciones, los paquetes Debian se colocan en archivos .deb. El nombre del paquete debe contener: <NumeroDeVersión>-<VersiónDeDebian>-<ArquitecturaDeDebian>.deb Una desventaja de este tipo de paquetes, es su sistema de actualización, debido a que, se necesita tener todos los archivos, como si se tratase una nueva instalación.

Lo utilizan Distros. basadas en .deb, tanto como Debian GNU/Linux y distros. derivadas de Debian; y como Ubuntu y distros. derivadas de Ubuntu.[5][6]

ebuild Paquete usado solo por la distribución Gentoo. Consiste en un script en Bash ejecutable solo en un entorno específico. Sus archivos, deben de ser archivos de texto con la extensión .ebuild. Contiene información sobre cómo obtener, compilar e instalar un paquete en el sistema Portage, pkgcore o Paludis. A partir de estos también se pueden crear paquetes binarios. Las distribuciones basadas en Gentoo, utilizan también el sistema ebuilds, compartiendo total o parcialmente mismo árbol de Portage.[7]

El nombramiento de este paquete debe obedecer la siguiente regla: nombre-versión.ebuild El contenido del nombre solo puede contener letras minúsculas sin acentuar, dígitos del cero al nueve, guiones, guiones bajos o el signo de adición; también, si se desea, se puede agregar alguno de los siguientes sufijos:[8]

Sufijo Significado
_alpha Liberación alpha
_beta Liberación beta
_pre Liberación previa a liberación candidata final
_rc Liberación candidata final
Sin sufijo Versión normal.
_p Versión con parches
.fpm Frugalware, que utiliza el gestor de paquetes Pacman de Arch Linux, pero la extensión formatos de paquetes se denominan .fpm, Frugalware Package Manager
eopkg Solus[9]​ utiliza este formato de pquetes, eopkg: (Evolve OS Package), el cual es una bifurcación del gestor de paquetes PiSi de Pardus.
Flatpak Todos los sistemas Linux
PiSi PiSi (Packages Installed Successfully as Intended): Fue utilizado por Pardus, hasta que finalmente dicha distribución pasó a basarse en Debian. Actualmente está en desarrollo una nueva distribución denominada Pisi Linux[10]​ que utiliza dicho formato de paquetes.
.pkg.tar.xz pkg.tar.xz es el formato de paquetes estándar, manejado por Pacman, de Arch Linux y distribuciones derivadas de Arch.

Pacman combina un paquete binario simple, con un sistema de fácil construcción. La meta de pacman es el facilitamiento de la instalación de paquetes, sea que estén dentro de los repositorios oficiales de Arch, o creaciones de los mismos usuarios.

Se encuentra escrito en el lenguaje de programación C, y usa el formato de compresión .pkg.tar.xz. Su ventaja sobre los demás tipos de paquetes, es la actualización que estos ofrecen, pues se sincronizan directamente con el servidor maestro, permitiendo así que el usuario pueda instalar paquetes (incluyendo dependencias) con un solo comando.[11]

A partir de la versión 2010.05, los paquetes se comprimen en el formato pkg.tar.xz, con compresión LZMA2, lo cual provee muchas ventajas tanto de espacio (hasta un 30% más de compresión respecto a su antiguo formato, pkg.tar.gz).

Todo esto resulta en una menor carga para los servidores por el menor tamaño de los paquetes.[12]

MO SLAX utiliza este formato de paquetes. Se abre con el Gestor de módulos de SLAX, y a continuación, se instala al Menú de KDE como un fichero de configuración de escritorio. Puede ser colocado en la carpeta de los módulos de SLAX CD para instalar en el arranque.
PUP y PET Puppy Linux, usa a PET, (Puppy Enhanced Tarball), formato PUP está en desuso desde la versión 3.0. Se instala solamente haciendo un clic sobre el tipo de paquete. El sistema operativo puede ser instalado en una memoria flash por portabilidad, y traer aplicaciones con él.
.rpm

RPMRed Hat Package Manager, fue desarrollado para la distribución de Red Hat, con el fin de crear un sistema fácil de crear e instalar.[13]

Una poderosa ventaja, sobre este tipo de paquetes sobre otros, es su forma de actualización para las aplicaciones, estos, no necesitan tener los mismos datos que el instalador original, solamente puede incluir (si se desea) los archivos que se actualizarán, esto reduce altamente el peso del paquete.

Es utilizado por muchas otras distribuciones, como también por openSUSE y Mandriva; Red Hat Enterprise Linux, Fedora, derivadas tales como CentOS,[14]​ and SUSE Linux Enterprise Server.

Snap Compatible con la mayoría de la distribuciones Linux, pero principalmente desarrollada por Ubuntu
.tbz2 Gentoo Linux y distribuciones derivadas de Gentoo utilizan este formato de paquetes; tal como la descontinuada Sabayon Linux que utilizó este formato de paquetes, manejado por Entropy. Gentoo Linux admiten los siguientes formatos: bzip2, gzip, lz4, lzip, lzop, xz y zstd[15]​.
.tlz Dragora poseía este formato de paquetes estándar.
.tgz

Es un archivo de paquetes específico para Unix, comprimido con el compresor GNU Zip.[16]​ Es un paquete de código fuente, ocupado para contener aplicaciones, y su código fuente, para no tener que crear un tipo de paquete específico para cada distribución. A diferencia de los paquetes .deb, o .rpm, este no contiene instrucciones particulares de instalación para cada distribución, por lo que la instalación del contenido deberá ser compilado por el usuario.

.txz Slackware y distros. derivadaa de Slackware utilizan estos formatos de paquetes, los cuales son comprimidos en un tarball (El formato .tgz fue utilizado hasta la versión 12.2) en vez de .tar.gz.[17]

Véase también editar

Referencias editar

  1. Justin Angelo Cappos, Stork: Secure Package Management for VM Environments, ProQuest, 2008, p. 128 ;
  2. «Alpine Package Keeper - Alpine Linux». wiki.alpinelinux.org. 
  3. «apk-tools». SourceForge. 
  4. «apk-tools - Alpine package manager». git.alpinelinux.org. 
  5. «InstallingSoftware - Community Ubuntu Documentation». Help.ubuntu.com. Consultado el 24 de abril de 2013. 
  6. «The Debian GNU/Linux FAQ» (en inglés). Archivado desde el original el 2 de abril de 2019. Consultado el 15 de marzo de 2013. 
  7. «ebuild». Consultado el 29 de julio de 2015. 
  8. «Gentoo Development Guide» (en inglés). Consultado el 15 de marzo de 2013. 
  9. «Basics to Package Management». Consultado el 1 de mayo de 2020. 
  10. Pisi Linux en DistroWatch.com
  11. «pacman» (en inglés). Consultado el 15 de marzo de 2013. 
  12. Pierre Schmitz (23 de marzo de 2010), Switching to xz compression for new packages, Archlinux.org, archivado desde el original el 28 de marzo de 2010, consultado el 23 de marzo de 2010 .
  13. Eric Foster-Johnson. «RPM Guide» (en inglés). Archivado desde el original el 31 de marzo de 2013. Consultado el 15 de marzo de 2013. 
  14. «rpm - Trac». Consultado el 29 de septiembre de 2014. 
  15. - Binary package compression formats (Formatos de compresión de paquetes binarios)
  16. «.TGZ File Extension» (en inglés). Consultado el 15 de marzo de 2013. 
  17. «Fixes security issues including : External entity infinite loop DoS» (TXT). Slackware.cs.utah.edu. Archivado desde el original el 7 de abril de 2018. Consultado el 22 de julio de 2017.