Tutorial

Cómo gestionar paquetes en Linux, instalar, desinstalar y compilar

En este tutorial vamos a ver cómo gestionar paquetes en Linux. Trataremos de entender lo mejor posible como instar programas, desinstalarlos y compilarlos nosotros mismos para optimizarlos con nuestro equipo.

Gestionar paquetes en Linux

Como nos podremos imaginar, Linux funciona de distinta forma a Windows, y la gestión de paquetes para la instalación de programas es sustancialmente distinta. Si bien es cierto que podremos hacer muchas acciones de forma gráfica, conviene aprender a movernos con soltura en este tema desde nuestro terminal de comandos.

La gestión de paquetes consiste descargar determinados archivos con el objetivo de instalar programas adicionales en nuestro sistema operativo, como si se tratase de un programa más para utilizarlo, bien en modo comando, o bien en modo gráfico.

¿Qué es un paquete?

Podemos decir que un paquete es un conjunto de ficheros que están relacionados entre sí para dar forma a una aplicación. Un paquete contendrá ejecutables, ficheros de configuración e información de ayuda para trabajar con él. Todo ello estará contenido en un paquete que puede ser de extensión DEB, RPM, TGZ, etc.

En la mayoría de casos, las distribuciones de Linux ya cuentan con gestores de paquetes incorporados al sistema. Estos programas, lo que hacen es ayudarnos a instalar, desinstalar o configurar un paquete para poder utilizarlo de la forma más sencilla posible. Además, estos sistemas de control de paquetes encontrarán de forma automática las dependencias entre paquetes para que, a la hora de instalarlos, estos queden funcionando correctamente y sin la falta de otros paquetes que serán necesarios para que el que nos ocupa funcione.

Tipos de paquetes en Linux

Existen muchas distribuciones de Linux, y estas están basadas principalmente en dos núcleos o kernels, el de Debian y el de Red Hat. Es por esto que podremos encontrar distintos tipos de paquetes en función de la distribución en la que estemos trabajando.

  • RPM: estos paquetes forman parte de las distribuciones basadas en Red Hat, por lo que, si por ejemplo tenemos SuSE, utilizaremos este tipo de paquetes que contendrán los ficheros de los programas que queramos instalar.
  • DEB: para las distribuciones basadas en Debian, como Ubuntu, los paquetes que utilizaremos tendrán la extensión “.deb”. El cometido será el mismo que el de los paquetes RPM, contener los ficheros necesarios para instalar nuestro programa.
  • TGZ: este tipo de paquete es distinto a los demás, ya que es un tipo de paquete comprimido compatible en todos los sistemas Unix. Estos ficheros están comprimidos normalmente en .tar.gz o .tar.bz2. Esto se debe a que contienen ficheros binarios y ficheros código fuente para que sea directamente el usuario de la máquina el que se encargue de crear el paquete específico para su distribución. Es decir, será el propio usuario el que compile el código máquina que en ellos hay para adaptarlo específicamente a su máquina y su distribución. Esto por un lado es ventajoso, ya que tendremos un programa adaptado a nuestro equipo, y por otro complica las cosas, ya que tendremos que ser nosotros mismos lo que busquemos las dependencias entre paquetes para una correcta instalación y solventar los problemas que irán apareciendo mientras avanzamos en el proceso.

¿Dónde obtenemos los paquetes? Los repositorios

Para nosotros obtener un paquete de instalación de un programa, tendremos que dirigirnos, de forma manual a la página web del creador. Este dispondrá normalmente de paquetes instalación como deb o rpm, o en su caso, paquetes de binarios que nosotros mismos tendremos que descomprimir y compilar.

Otra forma de obtener estos paquetes directamente desde los repositorios de cada sistema. Un repositorio es un lugar en donde se almacenan los paquetes de instalación para las distintas distribuciones Linux. En este repositorio encontraremos la enorme mayoría de paquetes de programas que podremos instalar en nuestro sistema Linux. Y lo más interesante es que será el mismo gestor de paquetes el que acceda al repositorio y busque todos los paquetes que necesite para instalar un programa.

Dónde está guardados los repositorios en Linux

Por supuesto, existe un fichero en el que se almacenan todos estos repositorios a las que accederá nuestro gestor de paquetes de forma automática para buscar el programa que queramos instalar.

El fichero en donde se almacenan, lo encontraremos, en el caso de Ubuntu en /etc/apt/sources.list. Para acceder a su contenido y editarlo escribiremos con permisos de root:

# nano /etc/apt/sources.list

Gestionar paquetes en Linux

Aquí veremos cómo los enlaces coloreados son los que están activados y funcionales para que el gestor de paquetes acceda a ellos. Pero además podremos activar otros de ellos que tienen delante el carácter “#”, borrando este.

Gestionar paquetes en Linux

Nota que ahora hay más de ellos coloreados en verde, por lo que también serán usados en la búsqueda. Además, podremos colocar un repositorio externo en este fichero, para que podamos acceder a él, en caso de que el programa que buscamos no se encuentre en ellos.

Añadir un repositorio a la lista

Además de los repositorios de los que ya disponemos en el propio sistema de forma nativa, también podremos añadir otros personalizados, por ejemplo, de algún programa que no se encuentre dentro de los repositorios disponibles.

En este caso nos tocará visitar Internet o la página web del programa para conocer más información hacerca de su repositorio particular. La URL la añadiremos al fichero sources.list y luego tendremos que actualizar la información con el comando:

sudo apt update

Trabajar con paquete DEB. El comando apt

Los paquetes DEB son los paquetes de software que vamos a encontrar en las distribuciones basadas en Debian. Estos sistemas tienen su propio gestor de paquetes instalado de forma nativa, y su nombre de APT.

Son las siglas de Advanced Packaging Tool y es un completo gestor de paquetes con el que podremos instalar todo tipo de paquetes de software que funcionen en Debian a través de la consola. Dentro del gestor APT tenemos unificadas todas la funcionales de otros gestores como apt-get y apt-cache.

Como cualquier otro comando de Linux, dispondremos de información extremadamente completa y en español de este comando si colocamos en el terminal:

apt --help

Este comando deberá de utilizarse con permiso de root, ya que estamos realizando modificaciones directas en el sistema. Opciones:

  • list: lista todos los paquetes según el nombre que coloquemos.
  • search: en este caso busca en la propia descripción de los paquetes.
  • show: nos muestra detalles del paquete que queramos.
  • install: por supuesto, instala los paquetes designados directamente desde los repositorios, o alguno que hayamos descargado de forma manual en nuestro equipo.
  • remove: elimina o desinstala los paquetes.
  • autoremove: elimina paquetes residuales, cache de instalación y carpetas de nuestro sistema.
  • update: actualiza la lista de paquetes de los repositorios configurados.
  • upgrade: con esta opción, actualizamos el sistema instalado y actualizando paquetes.
  • full-upgrade: en este caso, además, elimina los paquetes para luego reinstalar los nuevos.
  • edit-sources: podremos editar directamente el fichero de repositorios sources.list

Para utilizarlo solamente debemos de seguir la sintaxis básica con permisos de root:

apt install <nombre_de_paquete>
apt upgrade
apt list <nombre paquete>

Para instalar un programa con apt, el procedimiento general será buscar el nombre del paquete, bien con la opción “list” o “search” en los repositorios desde nuestro terminal, o bien dirigirnos al sitio web oficial del programa para localizar el nombre del paquete en los repositorios o descargar el paquete de forma manual.

Otros gestores de paquetes en Debian

Además del comando apt, también podremos utilizar otros disponibles en nuestro sistema:

apt-get

Otro gestor de paquetes muy completo, con multitud de opciones interesantes para poder gestionar nuestros paquetes. Con este comando, podremos reinstalar paquetes, resolver dependencias, buscar paquetes, actualizarlos, etc. Dispone de incluso más opciones que apt y podremos verlas todas mediante apt-get –help

aptitude

Comando muy completo para la gestión de paquetes. Este programa también instala directamente desde lo repositorios y tiene un mejor control de las dependencias de los paquetes que apt y apt-get, por lo que recomendamos su uso. Una de las posibilidades más interesantes de este comando, es que, si lo escribimos sin opciones en el terminal, aparecerá una interfaz interactiva en el propio terminal.

sudo aptitude

Gestionar paquetes en Linux

Si no está disponible en nuestro sistema, lo podremos instalar fácilmente:

sudo apt-get install aptitude

Trabajar con paquete RPM. El comando rpm

Para los sistemas basados en Red Hat, también tendremos nuestro propio gestor de paquetes que se encargará de resolver las dependencias e instalar todo tipo de paquetes de los repositorios de los sistemas operativos, SuSE, Fedora, Mandriva, etc.

La idea es exactamente la misma, aunque en este caso las opciones del comando son algo menos intuitivas:

  • -i: Instalamos el paquete. También se puede usar opciones extras como “v” y “h”. tendremos que poner el nombre del fichero y su extensión .rpm.
  • -ivh: además de instalar el paquete, muestra información sobre la instalación y una barra de progreso.
  • -e: para desinstalar un paquete. En este caso pondremos directamente el nombre del paquete no el nombre del fichero rpm.
  • –replacepkgs: en este caso, si reemplaza el antiguo por el nuevo paquete a instalar.
  • -U: o -Uvh: Actualiza un paquete, pero sin desinstalar la versión anterior.
  • -q: nos aporta información sobre el paquete.
  • -qi: opción extra para darnos información sobre paquete.
  • -ql: lista de archivos que forman el paquete.
  • -qR: dependencias del paquete.
  • -qs: estado de todos los archivos del paquete.
  • -qa: muestra todos los paquetes instalados en el sistema.
  • -V: comprueba que se ha realizado una correcta instalación.

Algunos ejemplos serían:

rpm -ivh <paquete>.rpm
rpm -qi <paquete>
rpm -e <paquete>

Trabajar con paquete en código fuente TGZ

Finalmente tenemos los paquetes más complicados de gestionar, que son los que vienen disponibles mediante su código fuente. Como dijimos anteriormente, estos ficheros necesitaremos compilarlos nosotros mismos para proceder a instalarlos. La ventaja es que estarán completamente adaptados a nuestro equipo, y la desventaja que el procedimiento es algo más complejo que simplemente descargarlos de un repositorio. También es cierto que las últimas versiones de un software siempre saldrán antes en este tipo de ficheros, y no necesitaremos esperar a que estén disponible en el repositorio.

Este tipo de paquetes suelen venir comprimidos, casi siempre en extensión “.tar.gz” o “.tar.bz2”, es decir, empaquetado con tar y comprimido con gzip o bzip2. Nosotros vamos a llevar a cabo un ejemplo de cómo se realizaría todo el procedimiento de instalación de uno de estos paquetes para el programa Amule.

Lo primero será descargar el paquete comprimido de la página web del creador. En este caso, los paquetes vienen extensión tar.bz2. Nosotros nos vamos a descargar la última versión disponible, la 2.3.2.

Pues bien, una vez descargado, vamos a elevarnos a root y vamos a entrar en el directorio en donde hemos descargado el fichero.

sudo su
cd /home/ayudalinux/Descargas

Ahora vamos a descomprimir el paquete con el comando tar:

tar -jxf aMule-2.3.2.tar.bz2

Extraemos (x) el fichero (f) tipo bzip2 (j) en el mismo directorio en donde nos encontramos.

Ahora conviene siempre leer los ficheros de documentación para saber si debemos tener algo en cuenta o no antes de instalar., Normalmente dispondremos de dos ficheros de información “INSTALL” y “README”. Aunque en este caso solamente tenemos el de README.

cd aMule-2.3.2
ls
cat README.Debian-Packges

En estos ficheros, normalmente se encuentra información importante sobre qué dependencias tendremos que instalar para que el programa se compile y configure correctamente. Si no vemos nada, lo que tendremos que hacer es comenzar el procedimiento. Para ello, siempre dispondremos de un fichero “configure”, que será el encargado de preparar los binarios para la instalación.

./configure

Gestionar paquetes en Linux

Vemos que nos han salido varios errores, concretamente no se han encontrado algunas librearías. Esto significa que tendremos que proceder a buscarlas o instalarlas para que el fichero de configuración se complete correctamente.

Si no sabemos que librearía es, lo mejor será buscarla con el comando apt, o en Internet.

# apt install libwxgtk3.0-dev
# apt search libupnp

Vemos en una lista algunas librerías con este nombre. Vamos a instalar la que parece ser la principal:

# apt install libupnp-dev

Ejecutamos de nuevo ./configure

Gestionar paquetes en Linux

Parece que uno de los problemas está solucionado, vamos a por el siguiente:

# apt search libcrypto
# apt search libcrypto++-dev

Probamos de nuevo… Ahora parece que el fichero de configuración se ha completado correctamente. Vamos al siguiente paso, que será compilar el paquete:

# make

Y luego, para instalarlo:

# make install

Gestionar paquetes en Linux

Es posible que también mientras hacemos esto, salten errores en la compilación, ya que a veces es necesario añadir opciones extras en estos comandos. Todo ello tendría que estar reflejado en la documentación README o INSTALL. Cada programa tendrá sus peculiaridades, pero el procedimiento a seguir casi en todas las ocasiones este precisamente éste.

Gestionar paquetes en Linux

Como veis, es bastante menos problemático instalar con el gestor de paquetes nativo que compilando, pero conseguiremos, por así decirlo crear un programa a nuestro gusto, ya que podremos modificar opciones directamente desde el código fuente.

Te recomendamos la lectura:  Uso del comando 'du' y 'df' para ver el tamaño de ficheros y carpetas

Esto es todo acerca de la gestión de paquetes en Linux, en función de la distribución que tengamos, utilizaremos rpm o apt o en su caso, tendremos que compilar. Esperamos que este tutorial haya sido de utilidad para aprender mejor los distintos procedimientos que hay para gestionar paquetes de software.

Publicaciones relacionadas

Deja una respuesta

Los datos de carácter personal que nos facilite mediante este formulario quedarán registrados en un fichero de Miguel Ángel Navas Carrera, con la finalidad de gestionar los comentarios que realizas en este blog. La legitimación se realiza a través del consentimiento del interesado. Si no se acepta no podrás comentar en este blog. Puedes consultar mi política de privacidad. Puede ejercitar los derechos de acceso, rectificación, cancelación y oposición en [email protected].

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Acepto la política de privacidad *

Botón volver arriba