Instalar programas en Linux Debian

Comparto una pequeña parte de los apuntes del curso de Linux que trata sobre la instalación de programas (paquetes de software) en sistemas operativos Debian y sus derivados (Ubuntu, mint, MX Linux, etc.). Se verá el uso de las herramientas apt, dpkg y otras como Dselect, Aptitude y Synaptic.

Linux LPIC-1. Examen 101

Apuntes no oficiales

Linux LPIC-1 Examen 101. Apuntes no oficiales por Marcelo Horacio Fortino. Versión 1.1. Agosto 2021.

Esta obra está sujeta a la licencia Reconocimiento-CompartirIgual 4.0 Internacional de Creative Commons. Para ver una copia de esta licencia, visite http://creativecommons.org/licenses/by-sa/4.0/.
Puede hallar permisos más allá de los concedidos con esta licencia en https://fortinux.com. Sugerencias y comentarios a info@fortinux.com

Todas las marcas son propiedad de sus respectivos dueños. Linux® es una marca registrada de Linus Torvalds. Ubuntu® es una marca registrada de Canonical Limited. Google® es una marca registrada de Google Inc.

Versión Autor/es Fecha Observaciones
1.0 Marcelo Horacio Fortino 2019/Agosto Curso LPIC 101
1.1 Marcelo Horacio Fortino 2021/Agosto Convertido a markdown - ipynb

Esta obra se distribuye con la esperanza de que sea útil, pero SIN NINGUNA GARANTÍA, incluso sin la garantía MERCANTIL implícita o sin garantizar la CONVENIENCIA PARA UN PROPÓSITO PARTICULAR. El autor no asume ninguna responsabilidad si el lector hace un mal uso de la mismo.

Sugerencias y comentarios a info@fortinux.com.

Estos apuntes didácticos se basan en:

Bibliografía

Tema 102: Instalación de Linux y gestión de paquetes

102.4 Gestión de paquetes Debian

  • Importancia: 3
  • Descripción: El candidato debe ser capaz de llevar a cabo la gestión de paquetes usando las herramientas de Debian.
  • Áreas de conocimiento clave:
  • Instalar, actualizar y desinstalar paquetes binarios de Debian.
  • Encontrar paquetes que contengan archivos o librerías específicos (estén o no instalados).
  • Obtener información del paquete como la versión, contenido, dependencias, integridad del paquete y estado de la instalación (tanto si el paquete está instalado como si no lo está).
  • Conocimientos de apt.
  • Lista parcial de los archivos, términos y utilidades utilizados:
  • /etc/apt/sources.list
  • dpkg
  • dpkg-reconfigure
  • apt-get
  • apt-cache

Sistema de gestión de paquetes

  • Un sistema operativo Linux o distribución es una colección de software que contiene entre otras cosas:
  • El Linux kernel,
  • Bibliotecas compartidas usadas por varios programas,
  • Shells utilizadas para interpretar los comandos,
  • Interfaz gráfica (X Window System GUI),
  • Aplicaciones varias.
  • Hay dos herramientas principales de administración de paquetes de Linux: RPM y Debian dpkg.
  • Éstas mantienen información sobre los paquetes de software que están instalados en el ordenador, una base de datos de archivos instalados, dependencias o los requisitos de los paquetes entre sí, y sumas de comprobación o verificación de la validez del software.
  • Por otra parte permiten instalar, actualizar y desinstalar aplicaciones de forma fácil.
  • Tanto el sistema de paquetes RPM como Debian dpkg además proporcionan herramientas para ayudar a crear paquetes binarios a partir del código fuente.
  • Los paquetes Debian son incompatibles con los paquetes RPM pero se puede instalar la aplicación alien para convertir un paquete RPM en un .deb.
sudo apt-get install alien
  • Convertir el paquete a .deb:
sudo alien package-name.tar.gz
  • Convertir el paquete a .rpm:
sudo alien -d package-name.rpm
  • Convertir el paquete package.rpm en un package.deb para luego instalarlo:
alien -i package-name.rpm
  • Para evitar que alien cambie el número de versión del paquete se usa:
alien -k rpm-package-file.rpm

Repositorios Debian

  • Los sistemas basados en Debian incluyen un fichero, /etc/apt/sources.list, que especifica los lugares o repositorios (fuentes) desde donde se pueden descargar los paquetes.
  • No se deben agregar repositorios a /etc/apt/sources.list a menos que sean confiables.
  • Un generador de listas de fuentes para Debian: https://debgen.simplylinux.ch/
  • Por ejemplo, para agregar un repositorio a /etc/apt/sources.list.d/ usando add-apt-repository:
sudo apt-key adv --recv-keys --keyserver keys.gnupg.net  74A941BA219EC810
sudo add-apt-repository "deb http://deb.torproject.org/torproject.org $(lsb_release -s -c) main"
sudo add-apt-repository ppa:gnome-terminator

Distribuciones Debian y convenciones

  • Distribuciones derivadas de Debian: Ubuntu Mate, Kubuntu, Lubuntu, Ubuntu Studio, Ubuntu Kylin, MX Linux, AntiX, Mint, Kali, Parrot, etc.
  • Convenciones para los nombres: Un fichero que finaliza en i386.deb indica que es un binario x86, powerpc.deb es un binario PowerPC, y all.deb indica que es un paquete CPU-independiente, como pueden ser la documentación de una aplicación o ciertos scripts.

DPKG

  • El fichero de configuración principal de dpkg es /etc/dpkg/dpkg.cfg o ~/.dpkg.cfg.
  • Para instalar un paquete en Debian (.deb) se usa el comando dpkg.
  • Instalar un paquete:
sudo dpkg -i # o en su defecto --install 
sudo dpkg -i /ruta/al/fichero/deb
sudo apt-get install -f
  • Re-configurar un paquete ya instalado:
sudo dpkg --configure  
sudo dpkg-reconfigure tzdata
  • Remover un paquete dejando los ficheros de configuración intactos:
sudo dpkg -r # o en su defecto --remove
  • Remover un paquete incluyendo los ficheros de configuración:
sudo dpkg -P # o en su defecto --purge
  • Mostrar información sobre un paquete instalado (apt-cache show):
sudo dpkg -p # o en su defecto --print-avail
  • Mostrar información sobre un paquete desinstalado:
sudo dpkg -I # o en su defecto --info
  • Listar todos los paquetes:
dpkg --get-selections

dpkg ubuntu

  • Listar todos los paquetes cuyos nombres coinciden con el patrón:
sudo dpkg -l patrón # o en su defecto --list patrón
  • Listar todos los ficheros instalados asociados con un paquete:
sudo dpkg -L # o en su defecto --listfiles paquete
  • Localizar el paquete(s) que es propietario del/los fichero(s) especificados en un patrón:
sudo dpkg -S patrón # o en su defecto --search  patrón
  • Buscar por paquetes parcialmente instalados.
  • Este comando sugiere que hacer con ellos y si no encuentra errores no muestra nada:
sudo dpkg -C # o en su defecto --audit

APT

  • Los sistemas basados en Debian también tienen apt-get y dselect para manejar la instalación y eliminación de paquetes.
  • Para APT (Advanced Packaging Tool), el archivo de configuración principal es /etc/apt/sources.list.
  • La configuración de APT proporcionada por los paquetes se instala como archivos separados en /etc/apt/apt.conf.d/ para que pueda agregarse y actualizarse independientemente de cualquier cambio local que realice en el archivo de configuración principal que controla las opciones de APT y dselect.
  • Se puede usar en las nuevas versiones de Linux simplemente apt como comando, en las antiguas es necesario usar apt-get. La sintaxis es similar a dpkg:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt-get install
sudo apt-get remove
sudo apt-get purge
  • Mostrar la base de datos de paquetes para verificar los paquetes instalados quebrados y/o inconsistencias:
sudo apt-get check
  • Para reparar dependencias rotas se usa sudo apt install -f, y para buscar ficheros dentro de los paquetes sudo apt-file.
  • Clean realiza tareas de limpieza para ayudar a borrar la información sobre los archivos recuperados de la base de datos del paquete Debian:
sudo apt-get clean
  • Similar a clean, pero elimina información de paquetes que no pueden ser más descargados:
sudo apt-get autoclean 
sudo apt-get autoremove
  • Las opciones más usadas de apt-get:

-d o en su defecto --download-only
-f o en su defecto --fix-broken
-m , --ignore-missing, o en su defecto --fix-missing
-s , --simulate , --just-print , --dry-run , --recon, o en su defecto --no-act
-y , --yes , o en su defecto --assume-yes (source command)
-b , --compile, o en su defecto --build (install command)

  • Easter egg:
sudo apt-get moo

Apt-cache

  • La suite de herramientas APT incluye apt-cache, el cual provee información sobre la base de datos de paquetes Debian.
  • Buscar paquetes:
apt-cache search nano
  • Mostrar información sobre un paquete:
apt-cache showpkg nano
  • Mostrar estadísticas del paquete:
apt-cache stats
  • Encontrar dependencias no satisfechas:
apt-cache unmet nano
  • Mostrar dependencias:
apt-cache depends nano
  • Localizar todos los paquetes con ese nombre:
apt-cache pkgnames nano

Dselect, Aptitude, Synaptic

  • El programa dselect es un navegador de paquetes de alto nivel actualmente poco utilizado.
  • Se puede instalar con:
sudo apt install dselect
  • Se ejecuta con:
sudo dselect
  • Otro gestor de paquetes basado en texto de Debian es aptitude.
  • Aptitude combina las características interactivas de dselect con las opciones de línea de comandos de apt-get. De los tres programas actualmente APT es el más utilizado.
  • Algunos ejemplos del uso de este gestor de paquetes:
sudo aptitude search package
sudo aptitude update
sudo aptitude install package
sudo aptitude help
sudo aptitude -v moo
  • Una herramienta similar para la gestión de paquetes es Synaptic, la interfaz gráfica (GUI) de APT.
  • No se puede ejecutar desde la línea de comandos a menos que se tenga un entorno de ventanas para poder trabajar con la aplicación.
  • Debian mantiene una colección de paquetes en el sitio web https://www.debian.org/distrib/packages.

Imagen de portada: Element5 Digital en Pexels https://www.pexels.com/es-es/foto/libros-surtidos-en-el-estante-1370295/

Si buscas un formador para realizar este curso u otra actividad formativa (webinar, workshops, bootcamps, etc.) en tu organización, me puedes ubicar a través de la página de contacto. Muchas gracias.

Si te ha gustado el artículo puedes ayudarme haciendo una donación con criptomonedas. Gracias!!!