Metapaquetes

¿Que es un metapaquete?

Un metapaquete es un paquete que no contiene archivos ejecutables o configuraciones, sino que simplemente depende de otros paquetes. Esto permite instalar un conjunto de paquetes de manera sencilla con un solo comando.

En esta guía se va a describir 2 metodos para crear metapaquetes:

Creación del metapaquete con equivs-control

como instalar equivs

Para esta guía es necesario tener una distribución Debian o derivados, aunque se recomienda utilizar Minunux para utilizar los repositorios que tenga incluido.

comando
sudo apt update && sudo apt install equivs -y

Creación del metapaquete con equivs-control

Paso 1: Crear el archivo de control

Ejecuta el siguiente comando para generar un archivo base de configuración:

bash
equivs-control mi-metapaquete
<p>Este comando generará un archivo llamado mi-metapaquete, esto es un template que necesita ser editado.</p>

El archivo tiene un formato similar a este:

mi-metapaquete
### Commented entries have reasonable defaults.
### Uncomment to edit them.
# Source: <source package name; defaults to package name>
Section: misc
Priority: optional
# Homepage: <enter URL here; no default>
Standards-Version: 3.9.2

Package: <package name; defaults to equivs-dummy>
# Version: <enter version here; defaults to 1.0>
# Maintainer: Your Name <yourname@example.com>
# Pre-Depends: <comma-separated list of packages>
# Depends: <comma-separated list of packages>
# Recommends: <comma-separated list of packages>
# Suggests: <comma-separated list of packages>
# Provides: <comma-separated list of packages>
# Replaces: <comma-separated list of packages>
# Architecture: all
# Multi-Arch: <one of: foreign|same|allowed>
# Copyright: <copyright file; defaults to GPL2>
# Changelog: <changelog file; defaults to a generic changelog>
# Readme: <README.Debian file; defaults to a generic one>
# Extra-Files: <comma-separated list of additional files for the doc directory>
# Links: <pair of space-separated paths; First is path symlink points at, second is filename of link>
# Files: <pair of space-separated paths; First is file to include, second is destination>
#  <more pairs, if there's more than one file to include. Notice the starting space>
Description: <short description; defaults to some wise words>
 long description and info
 .
 second paragraph

Paso 2: Editar el archivo de control

Edita el archivo con un editor de texto como nano:

comando
nano mi-metapaquete

El archivo tiene un formato similar a este:

mi-metapaquete
Section: misc  
Priority: optional  
Standards-Version: 4.5.1  
Package: mi-metapaquete  
Version: 1.0  
Maintainer: Tu Nombre <tuemail@example.com>  
Architecture: all  
Depends: vim, curl, git  
Description: Este es un metapaquete de ejemplo  
 Este metapaquete instala Vim, Curl y Git.

Explicación de los campos

  • Package: Nombre del metapaquete.
  • Version: Versión del metapaquete.
  • Maintainer: Persona responsable del paquete.
  • Architecture: Debe ser all ya que no contiene binarios.
  • Depends: Lista de paquetes que se instalarán con el metapaquete.
  • Description: Breve descripción del metapaquete.
  • Section: Misc se usa cuando no encaja claramente en una categoria especifica.
<p>Al final de la guía, se va agregar información adicional sobre metapaquetes.</p>

Paso 3: Construcción del metapaquete

Ejecuta el siguiente comando para construir el metapaquete:

bash
equivs-build mi-metapaquete

Este comando generará un archivo .deb, por ejemplo:

comando
mi-metapaquete_1.0_all.deb

Paso 4: Instalación del metapaquete

Para instalar el metapaquete y sus dependencias, usa:

comando
sudo apt install ./mi-metapaquete_1.0_all.deb
<p>Es posible usar <code>dpkg -i</code> para la instalación, pero es mas recomendable usar <code>apt</code></p>

Creación de un metapaquete manualmente (sin equivs)

Si deseas crear un metapaquete sin equivs, puedes hacerlo manualmente de la siguiente manera:

Paso 1: Crear la estructura del paquete

comando
mkdir -p mi-metapaquete_version_arch/DEBIAN

Paso 2: Crear el archivo de control con algun editor de texto (nano)

comando
nano mi-metapaquete_version_arch/DEBIAN/control

Contenido del archivo:

mi-metapaquete
Package: mi-metapaquete  
Version: 1.0  
Section: misc  
Priority: optional  
Architecture: all  
Maintainer: Tu Nombre <tuemail@example.com>  
Depends: vim, curl, git  
Description: Metapaquete de ejemplo  
 Este metapaquete instala Vim, Curl y Git.

Paso 3: Construcción del paquete

dpkg-deb --build mi-metapaquete_version_arch/

Esto generará mi-metapaquete_version_arch.deb.

Paso 4: Instalación del metapaquete

comando
sudo apt install ./mi-metapaquete_version_arch.deb -y

Información adicional

Debian define una variedad de secciones para los paquetes deb, esta es una lista de secciones mas comunes a usar:

  • admin: Utilidades de administración del sistema.
  • devel: Herramientas y bibliotecas de desarrollo.
  • doc: Documentación y manuales.
  • editors: Editores de texto y programas relacionados.
  • games: Juegos y entretenimiento.
  • graphics: Software relacionado con gráficos y diseño.
  • net: Aplicaciones y utilidades de red.
  • utils: Utilidades diversas.
<p>Vea más secciones en: <a href="https://packages.debian.org/stable/" target="_blank" rel="noopener">https://packages.debian.org/stable/</a></p>