GNU/Linux. La Gestión de Software y Paquetes

Muy buenas lector. Esta página forma parte de la serie de introducción a Linux que te acabo de enlazar. Si ya has leído la partes más introductorias relativos GNU/Linux, las distribuciones o los entornos de escritorio, aquí ya empezarás a conocer cositas más interesantes relativos a la administración del sistema.

Concretamente, en esta pagina vas a aprender todo lo relativo a la gestión de paquetes, que básicamente se traduce en los diferentes sistemas que tienes en Linux a la hora de obtener e instalar software. ¡Vamos allá!

Tabla de contenidos:

  1. Obtener e instalar aplicaciones en Linux
  2. Gestores de Paquetes y repositorios de software
    1. Los paquetes
    2. Los gestores de paquetes
    3. Los repositorios de software
    4. Utilidades para interactuar con el gestor de paquetes
  3. Paquetes auto-contenidos y aplicaciones universales
    1. Snappy
    2. Flatpak
    3. Utilidades para interactuar con Snappy y Flatpak
  4. Esto continua

Obtener e Instalar Aplicaciones en Linux

La gestión de software es uno de los puntos más importantes que te interesa conocer si acabas de aterrizar. En Windows es algo que no tiene mucho misterio, dado que la gran mayoría de software está desarrollado por y para Windows, por lo que el tema se reduce a ir a la web oficial del fabricante o desarrollador y descargar el ejecutable.

En Linux, sin embargo, el tema es algo diferente. Aparte de que hay muchos fabricantes que no ofrecen su software para plataformas Linux, hay otro punto a considerar, y es que, de forma muy generalizada, todas las distribuciones funcionan mediante un sistema de gestión de paquetes, aunque luego también hay otros sistemas, como verás un poco más adelante.

Gestores de Paquetes y Repositorios de Software

El gestor de paquetes que ofrece cada distribución, en combinación con sus repositorios o fuentes de software, constituyen la forma más comun en que se distribuye el software disponible para instalar.

En GNU/Linux todo el software (desde la propia base del sistema, hasta las diferentes aplicaciones de usuario que puedes instalar voluntariamente) se distribuye en forma de paquetes, los cuáles se gestionan a través de los denominados gestores de paquetes, y se obtienen de los repositorios de software oficiales de cada distribución. Esto tiene varias ventajas importantes que verás abajo.

Los Paquetes

Un paquete es un fichero comprimido que contiene todos los archivos que se requieren para la instalación de un determinado software. Así, por entendernos, cualquier pieza de software consta de un paquete o un conjunto de paquetes.

Muchos paquetes son dependientes entre sí, lo que significa que se necesitan entre ellos para poder operar correctamente. Asimismo, las dependencias pueden ser compartidas entre diferentes paquetes. Es decir, es muy común que haya paquetes que sean utilizados por diferentes programas, como parte de sus dependencias.

Los formatos típicos de paquetes que se suelen utilizar son .deb, para todo el universo de distribuciones basadas en Debian, y .rpm, creado por Red Hat y utilizado en muchas otras distribuciones como Fedora, openSUSE o CentOS.

Como la gestión manual de tantos paquetes y dependencias sería muy compleja de cara al usuario, ahí entran en juego los gestores de paquetes, como APT, DNF (el sucesor de Yum en Fedora), Zypper o Pacman.

Los Gestores de Paquetes

Los gestores de paquetes son una parte esencial en cualquier distribución GNU/Linux, y en ultima instancia, es el principal factor diferencial (junto con el formato de paquetes como tal) entre unas distribuciones y otras.

Obviamente de distribuciones hay a miles, y los gestores de paquetes los podemos contar con los dedos de una mano, ya que es uno de los componentes más core del sistema, y de la cual dependen muchas otras herramientas.

Entre las principales funciones de un gestor de paquetes están las siguientes:

  • La gestión automática de las dependencias (al instalar o desinstalar paquetes).
  • La búsqueda de actualizaciones de todos los paquetes que tenemos en local, según la ultima versión disponible en los repositorios oficiales.
  • La comprobación de las sumas de verificación y firmas digitales.

Luego, aparte del gestor de paquetes en sí, están las diferentes herramientas o aplicaciones (ya sean por consola o a nivel gráfico) que hacen de interfaz para permitir la interacción del usuario con el propio gestor de paquetes, aunque de eso hablaremos un poco más adelante.

Como venía diciendo un poco más arriba, el gestor de paquetes suele ser un componente compartido entre muchísimas distribuciones que derivan de una misma base común.

Así pues, tenemos a APT, que es el estándar utilizado entre las distribuciones de la familia Debian (como Ubutu o Linux Mint), a Yum y a DNF, que son los utilizados por los integrantes de la família Red Hat (como Fedora, CentOS o RHEL), etc.

Los Repositorios de Software

Los repositorios de software permiten ofrecer un catálogo de aplicaciones gestionado desde un lugar centralizado y supervisado por la comunidad de desarrolladores y usuarios.

Las ventajas de esto son varias, empezando por el hecho de evitarte la necesidad de tener que visitar webs externas para la descarga de software. Esto da bastantes garantías al usuario de que todo el software que ha descargado es legítimo, y que además estará soportado, bien por parte de la comunidad de desarrolladores de la distribución, o bien a través de la empresa que haya detrás (Canonical, Red Hat, SUSE, etc.).

Otra ventaja es la facilidad a la hora de administrar las actualizaciones. El gestor de paquetes generalmente te alertará cada vez que detecte que en los repositorios haya versiones nuevas de los paquetes que tengas instalados. De este modo, como sistema y aplicaciones derivan de las mismas fuentes de software, estarás actualizando todo tu sistema en su conjunto.

Cada distribución cuenta con sus propios repositorios de software, y normalmente el catálogo es suficientemente extenso como para cubrir la mayor parte de necesidades de un usuario normal.

También hay que decir que, aunque existan los repositorios y puedas tirar de ellos para tus necesidades de software, esto no quita que puedas necesitar un programa o herramienta concreta que no esté disponible en los repositorios de tu distribución (o en la versión que necesites), y que debas recurrir a una fuente externa, o a la propia web del fabricante, para su descarga.

Utilidades para Interactuar con los Gestores de Paquetes

Aparte de los paquetes, los gestores de paquetes y los repositorios de paquetes, luego, en una capa superior, podemos tener un sinfín de utilidades que hagan de interfaz, y que permitan nuestra interacción con los gestores de paquetes (ya sea desde la línea de comandos, o a nivel gráfico).

Utilidades Core del Propio Gestor de Paquetes

Todos los gestores de paquetes ofrecen un conjunto de herramientas core para permitir su interacción a través de la línea de comandos.

A modo de ejemplo, y centrándome en el caso de las distribuciones de la familia Debian, podemos mencionar al propio APT, que a parte de ser el propio gestor de paquetes como tal, ofrece una interfaz de ordenes para permitir la interacción del usuario a través de la línea de comandos.

A través de los diferentes comandos que ofrece Apt, se pueden hacer multitud de tareas, tales como actualizar el catálogo de paquetes, actualizar paquetes, instalar o eliminar paquetes (junto con sus dependencias), entre otras muchas tareas más concretas de mantenimiento.

El uso básico de Apt es relativamente sencillo, y para el día a día no hay más que conoce unos pocos comandos concretos. Con esto lo tienes todo más que cubierto, sin necesitar otras herramientas adicionales.

Y lo dicho con Apt es perfectamente extrapolable a otros gestores de paquetes utilizados en otras distribuciones, como por ejemplo DNF en el caso de Fedora y sus derivados, Zypper en el caso de openSUSE o Pacman en el caso de Arch Linux.

El denominador común en todos estos casos es que la interacción se hace a partir de la línea de comandos. Esto ha promovido que, en busca de facilitar la vida al usuario, hayan ido naciendo otras utilidades para posibilitar una interacción desde la propia interfaz gráfica.

Gestores de Paquetes Gráficos

Por tal de traducir toda la funcionalidad que ofrecen las utilidades de consola de los diferentes gestores de paquetes, las diferentes distribuciones y entornos de escritorio han ido creando diferentes utilidades a nivel gráfico que corran por encima.

En el universo de distribuciones Debian, una de las utilidades más populares se ese tipo es Synaptic, una herramienta que corre por encima de APT, y que destaca sobretodo por el equilibrio que ha conseguido lograr entre facilidad de uso y la complejidad necesaria que garantiza el control claro y transparente de todos los paquetes de tu sistema.

Gestor de Paquetes Synaptic

A diferencia de herramientas gráficas más sencillas que se limitan a mostrar las aplicaciones en si, y hacen la gestión de paquetes por detrás (sin que el usuario sea consciente de los paquetes y dependencias implicados), aquí tienes una visión mucho más completa y transparente.

Como los gestores de paquetes también son los encargados de gestionar las actualizaciones de tu sistema (no dejamos de hablar de paquetes, al fin y al cabo), todas las distribuciones y entornos de escritorio también ofrecen una utilidad gráfica para la gestión de actualizaciones de software.

Su utilidad básica es la de comprobar la lista de paquetes instalados localmente, con que se encuentran en los repositorios, para detectar aquellos que disponen de versión más reciente en los repos. A partir de ahí, se genera una alerta al usuario, indicándole todos aquellos paquetes que son candidatos a ser actualizados. Abajo muestro el ejemplo de la utilidad que ofrece Ubuntu para la gestión de actualizaciones.

Gestor de Actualizaciones

Aunque estética y funcionalmente pueden variar de una distribución a otra, o de un entorno de escritorio a otro, por debajo siempre se basan en propio gestor de paquetes utilizado (por ejemplo, Apt, en el caso de Debian y Ubuntu).

Al igual que ocurre con los paquetes como tal, también es posible controlar los repositorios activos a la hora de subministrar los paquetes. En la imagen de debajo puedes ver, a modo de ejemplo, la ventada de gestión de repositorios de Ubuntu.

Repositorios de Software

Como ves, hay distintas fuentes, por tal de distribuir los paquetes en grupos, según si son libres y mantenido oficialmente por Canonical (que en este caso es la compañía detrás de Ubuntu), si son libres pero mantenidos por la comunidad (sin contar con el soporte de Canonical), etc.

Ojo, estos son los grupos de repositorios que dispone Ubuntu por defecto, pero cada distribución tiene sus propios repositorios, que se encarga de mantener y actualizar según sus propias reglas.

Tiendas de Software

Aparte de las diferentes herramientas que hemos visto, tanto a nivel gráfico como desde la consola, cada vez se están popularizando más las aplicaciones con formato de tienda de software, que aunque se nutren del catalogo de paquetes de los mismos repositorios de software, también pueden mostrar aplicaciones de otras fuentes, como las que provienen de la tienda de Snaps (en el caso de Ubuntu) o de la tienda de Flatpak, en el caso de otras distribuciones.

La principal diferente con otras herramientas gráficas, como puede ser Synaptic, es que en el caso de las tiendas de aplicaciones, la gestión a nivel de paquetes y dependencias la realiza por debajo el gestor de paquetes, de forma totalmente transparente al usuario, que lo único que ve aquí son aplicaciones, categorías, descripciones y reseñas de usuario.

A nivel del entorno de escritorio, tanto GNOME como KDE Plasma disponen de sus propias aplicaciones de tienda de software, y que puedes ver un muchas distribuciones, en función del entorno utilizado. Abajo tienes una captura de la tienda de software de GNOME que puedes encontrar en Ubuntu.

Tienda de Software de GNOME

Como puedes ver, la filosofía es similar a la de otras tiendas de software más populares, fuera ya del entorno de Linux en el que nos movemos. Aunque por debajo se esté ejecutando APT, o el gestor de paquetes que corresponda, este hecho pasa totalmente inadvertido para el usuario.

Paquetes Autocontenidos y Aplicaciones Universales

El sistema de gestión de paquetes que te acabo de describir es un sistema de distribución de software que funciona desde hace años, y a mi personalmente me gusta mucho la filosofía que tiene detrás. Sin embargo, como todo, también tiene sus contras.

De entrada, es un sistema que obliga a tener que realizar una compleja gestión de dependencias, que aunque es asumida por parte del propio gestor de paquetes, a veces puede dar algún que otro problema.

A esto, hay que unirle el hecho es que no existe un único formato de paquetes estandarizado y utilizado por todas las distribuciones. Esto, aunque también tiene sus partes buenas (cada distribución es libre de adoptar y/o crear su propio sistema), dificulta en gran medida la labor de empaquetado por parte de los desarrolladores de aplicaciones, ya que obliga a tener que empaquetar su software según diferentes formatos.

Dada esta situación, en los últimos años han ido saliendo otros modelos y formatos de distribución de aplicaciones, basadas en un formato de aplicación auto-contenida (que ya incorpore dentro todos los componentes y dependencias que necesita para funcionar), y que, a la vez, sean compatibles con todas las distribuciones, facilitando en gran medida la labor de empaquetado.

Snappy

Snappy es un sistema de distribución de aplicaciones desarrollado por Canonical. Utiliza un formato de paquetes auto-contenidos denominado snap, y opera a través de una herramienta denominada snapd. Un paquete snap funciona como un sistema de archivos comprimido que es montado de forma dinámica por el propio sistema operativo, antes de ejecutar la aplicación contenida en él.

Aunque es un formato que puede funcionar en cualquier distribución GNU/Linux (para ello se debe instalar previamente snapd), su uso está actual está muy ligado a Ubuntu. De hecho, en un intento de impulsar el uso de snaps, en las ultimas versiones de Ubuntu ya hay aplicaciones pre-instaladas que vienen como snap, en vez de usar la versión clásica de paquetes .deb.

Los paquetes snaps se ejecutan por defecto en un entorno aislado a modo de sandbox, sin poder acceder al resto de recursos del sistema, aunque, luego, la mayoría de aplicaciones permiten un ajuste granular de todos los recursos a los que se le quiere dar acceso, de forma similar a los controles de las aplicaciones que existen en Android e iOS.

Flatpak

Flatpak es un desarrollo que forma parte del proyecto freedeskop.org que se define como un framework (así aparece en su web oficial) de distribución de aplicaciones de escritorios que puedan ser portadas a cualquier distribución Linux.

Aunque el uso de Flatpak estuvo inicialmente más ligado a la esfera de Red Hat, actualmente hay bastantes distribuciones que lo ofrecen, como alternativa a los clásicos gestores de paquetes.

La idea centrar de Flatpak es que cada aplicación está en su propio contenedor, junto con todos los componentes que precisa para funcionar. Las aplicaciones se ejecutan en su propio entorno aislado, y requieren el permiso explícito del usuario para acceder a determinados recursos de hardware o ficheros del sistema.

Utilidades para Interactuar con Snappy y Flatpak

Ahora que ya sabes en que consisten las denominadas aplicaciones auto-contenidas, y conoces dos de los actores más importantes en este universo, como son Snappy y Flatpak, es importante mencionar los diferentes canales desde los cuales puedes interactuar con ellos para la descarga de las diferentes aplicaciones que se ofrecen en su catálogo.

Utilidades Core de Snappy y Flatpak

La manera más rápida y directa que tienes para instalar una aplicación de las tiendas de Snappy o Flatpak es hacerlo desde las propias utilidades de consola de las que disponen. El único requisito es que deberás contar con los paquetes necesarios de ambas plataformas, en caso de que no vengan integrados en tu distribución.

Ubuntu integra Snappy desde hace varias versiones, y otras muchas distribuciones, como es el caso de Fedora, Linux Mint o la ultima edición de Debian, hacen los mismo con Flatpak. Sin embargo, tanto Snappy como Flatpak son distro-agnosticas, de modo que nada te impide utilizar Flatpak en Ubuntu, o Snappy en Debian, por poner un ejemplo.

Tiendas de Software

Las tiendas de software de las que hemos hablado son otro canal desde el cual podrás acceder a instalar aplicaciones de las tiendas de Snappy o de Flatpak.

Las tiendas de software como la de GNOME, a nivel funcional, son independientes al gestor de paquetes utilizado, así como al uso de Snappy o Flatpak. Simplemente adaptan el catálogo en cada caso a las fuentes utilizadas, o al uso particular de Snappy o Flatpak.

Así pues, en el caso de Ubuntu, las aplicaciones que encontrarás en la tienda de software de GNOME son las accesibles en los propios repositores de paquetes a través de APT, más los Snaps propios del catálogo de aplicaciones de Snappy (debido a que Ubuntu ya viene de serie con Snappy).

Tienda de Software de GNOME

Obviamente el catálogo de aplicaciones de Snaps es muchísimo reducido que el de los repositorios oficiales, pero ya hay varias aplicaciones que están disponibles de las dos maneras, como ocurre, por ejemplo, con Chromium o el reproductor de medios VLC. En estos casos, en la tienda te aparecerán las dos variantes para que tu mismo escojas la que quieres instalar.

Esto Continua

Como indico al principio, esta pagina forma parte de la serie de introducción a Linux y que sirve de punto de partida para todo el contenido relacionado con GNU/Linux que hay y habrá en el blog. A continuación iré enlazando el resto de paginas, a medida que las vaya teniendo preparadas.

  1. Las distribuciones
  2. Descargar e instalar GNU/Linux
  3. Particiones y volúmenes de disco
  4. El entorno gráfico
  5. El interprete de comandos
  6. La gestión de software y paquetes
  7. Aplicaciones imprescindibles
  8. Seguridad y medidas de protección
  9. Compra tu portátil con Linux preinstalado

Espero que lo disfrutes:)

2 comentarios en “GNU/Linux. La Gestión de Software y Paquetes

  1. puto el que lo lea

    Me gusta

    1. PD: Copiaste dos veces la misma cosa pete

      Me gusta

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.

search previous next tag category expand menu location phone mail time cart zoom edit close