Los sistemas basados en Debian, como la mayoría de las distribuciones GNU/Linux, se mantienen y distribuyen a través de una colección de paquetes. Debido a que existen miles de paquetes, éstos son divididos en secciones y tienen prioridades para simplificar la gestión de los mismos.



El objetivo del proyecto Debian es construir un sistema operativo libre. Sin embargo, no todos los paquetes que se desean proveer son libres de acuerdo a los lineamientos del proyecto (The Debian Free Software Guidelines). Por esta razón, el archivo (conjunto de paquetes provistos por Debian) es separado en áreas basadas en sus licencias y restricciones.

Esto permite disponer de la mayor cantidad de software posible para los usuarios; fomentar el uso del software libre; y facilitar la distribución y reproducción de distribuciones basadas en Debian, sin violar licencias, restricciones de importación/exportación, y otras leyes.

Por esta razón, el archivo de Debian se divide en tres secciones: main, contrib y non-free. El archivo main conforma la distribución Debian, mientras que los archivos contrib y non-free no son considerados parte de la distribución, aunque se provee soporte e infraestructura para su uso (bug-tracking, listas de correo, etc.)

El archivo main

el archivo main constituye la distribución Debian. Ninguno de los paquetes dentro de este archivo dependen de software fuera del mismo para funcionar. Cualquiera puede utilizar, compartir, modificar y redistribuir los paquetes dentro de este archivo libremente. Todos los paquetes dentro de este archivo deben cumplir con la DFSG (Debian Free Software Guidelines).

Adicionalmente, los paquetes en main no deben requerir ni recomendar un paquete fuera del mismo, tanto para compilación como ejecución. Más precisamente no deben declarar una relación "Pre-Depends", "Depends", "Recommends", "Build-Depends", o "Build-Depends-Indep" con paquetes fuera de main.

Más allá de cuestiones de licenciamiento, los paquetes en main deben cumplir con ciertos requisitos en cuanto a calidad de software para ser aceptados, particularmente en lo que a número de bugs respecta.

El archivo contrib

El área contrib contiene paquetes suplementarios pensados para funcionar en Debian, pero que requieren software fuera de la distribución (fuera de main) para compilar y/o funcionar.

Todos los paquetes dentro de contrib deben cumplir con la DFSG y contar con una calidad aceptable para ser admitidos por el soporte de Debian, de igual forma que los paquetes dentro de main.

Ejemplos de paquetes dentro de contrib son paquetes libres que requieren paquetes dentro de contrib o non-free (o paquetes que no están en absoluto dentro del archivo de Debian para compilación o ejecución), y paquetes contenedores o accesorios libres para programas no libres.

El archivo non-free

Este archivo contiene paquetes pensados para funcionar en Debian, pero que no cumplen con la DFSG o tienen otros problemas que haces su distribución problemática (cuestiones de importación/exportación, patentes, etc.)

Sin embargo estos paquetes deben contar con un nivel de calidad apto para su soporte, al igual que los paquetes en main y contrib y cumplir con la mayor cantidad posible de políticas presentadas en la DFSG.

Secciones

Los paquetes en las áreas del archivo main, contrib y non-free son a su vez subdivididos en secciones para simplificar su gestión. Estas secciones dan una noción del propósito de cada paquete. Actualmente existe un número importante de secciones sugeridas por el equipo de mantenedores de Debian, algunos ejemplos son: database, editors, education, fonts, games, gnome, graphics, kde, mail, shells, sound, utils, x11, y más.

¿Cómo saber a qué área y sección del archivo pertenece un paquete?

Es posible determinar el origen de un paquete examinando el campo "Section:" en la salida del comando apt-cache show. Los paquetes pertenecientes al área main sólo indican a qué sección pertenecen, en cambio los paquetes pertenecientes a contrib y non-free lo indican explícitamente a través de la cadena "área/sección". Por ejemplo:

El paquete nano pertenece a "main/editors":

root@debian:~# apt-cache show nano | grep Section
Section: editors

El paquete unrar pertenece a "non-free/utils":

root@debian:~# apt-cache show unrar | grep Section
Section: non-free/utils

¿Cómo listar todos los paquetes provenientes de contrib o non-free?

Es posible recurrir a la herramienta dpkg-query para lsitar todos los paquetes provenientes de contrib y non-free (el resto provienen de main). Por ejemplo:

root@debian:~# dpkg-query -W -f='${Section}\t${Package}\n' | grep non-free
non-free/utils  unrar

En este sistema el único paquete proveniente de non-free es unrar.

Referencias


Tal vez pueda interesarte


Compartí este artículo