Linux Professional Institute Learning Logo.
Pasar al contenido principal
  • Inicio
    • Todos los recursos
    • LPI Learning Materials
    • Conviértete en colaborador
    • Publishing Partners
    • Conviértase en un Publishing Partner
    • Acerca de nosotros
    • FAQ
    • Colaboradores
    • Roadmap
    • Contáctenos
  • LPI.org
102.4 Lección 1
Tema 101: Arquitectura del Sistema
101.1 Determinar y configurar los ajustes de hardware
  • 101.1 Lección 1
101.2 Arranque del sistema
  • 101.2 Lección 1
101.3 Cambiar los niveles de ejecución / objetivos de arranque y apagar o reiniciar el sistema
  • 101.3 Lección 1
Tema 102: Instalación de Linux y gestión de paquetes
102.1 Diseño del esquema de particionado del disco duro duro
  • 102.1 Lección 1
102.2 Instalar un gestor de arranque
  • 102.2 Lección 1
102.3 Gestión de librerías compartidas
  • 102.3 Lección 1
102.4 Gestión de paquetes Debian
  • 102.4 Lección 1
102.5 Gestión de paquetes RPM y YUM
  • 102.5 Lección 1
102.6 Linux como sistema virtualizado
  • 102.6 Lección 1
Tema 103: Comandos GNU y Unix
103.1 Trabajar desde la línea de comandos
  • 103.1 Lección 1
  • 103.1 Lección 2
103.2 Procesar secuencias de texto usando filtros
  • 103.2 Lección 1
103.3 Administración básica de archivos
  • 103.3 Lección 1
  • 103.3 Lección 2
103.4 Uso de secuencias de texto, tuberías y redireccionamientos
  • 103.4 Lección 1
  • 103.4 Lección 2
103.5 Crear, supervisar y matar procesos
  • 103.5 Lección 1
  • 103.5 Lección 2
103.6 Modificar la prioridad de ejecución de los procesos
  • 103.6 Lección 1
103.7 Realizar búsquedas en archivos de texto usando expresiones regulares
  • 103.7 Lección 1
  • 103.7 Lección 2
103.8 Edición básica de archivos
  • 103.8 Lección 1
Tema 104: Dispositivos, sistemas de archivos Linux y el estándar de jerarquía de archivos
104.1 Creación de particiones y sistemas de archivos
  • 104.1 Lección 1
104.2 Mantener la integridad de los sistemas de archivos
  • 104.2 Lección 1
104.3 Controlar el montaje y desmontaje de los sistemas de archivos
  • 104.3 Lección 1
104.5 Administración de los permisos y los propietarios de los archivos
  • 104.5 Lección 1
104.6 Crear y cambiar enlaces duros y simbólicos
  • 104.6 Lección 1
104.7 Encontrar archivos de sistema y ubicar archivos en el lugar correspondiente
  • 104.7 Lección 1
How to get certified
  1. Tema 102: Instalación de Linux y gestión de paquetes
  2. 102.4 Gestión de paquetes Debian
  3. 102.4 Lección 1

102.4 Lección 1

Certificación:

LPIC-1

Versión:

5.0

Tema:

102 Instalación de Linux y Administración de Paquetes

Objectivo:

102.4 Gestión de paquetes en Debian

Lección:

1 de 1

Introducción

Hace mucho tiempo, cuando Linux todavía estaba en su infancia, la forma más común de distribuir software era un archivo comprimido (generalmente un archivo .tar.gz) con código fuente, que usted mismo debía desempacar y compilar.

Sin embargo, a medida que crecía la cantidad y la complejidad del software, se hizo evidente la necesidad de una forma de distribuir el software precompilado. Después de todo, no todos tenían los recursos, tanto en tiempo como en potencia informática, para compilar grandes proyectos como el núcleo (Kernel) de Linux o un servidor X.

Pronto, crecieron los esfuerzos para estandarizar una forma de distribuir estos “paquetes” de software, y nacieron los primeros administradores de paquetes. Estas herramientas facilitaron mucho la instalación, configuración o eliminación de software de un sistema.

Uno de ellos fue el formato de paquete Debian (.deb) y su herramienta de paquetería (dpkg). Hoy en día, se usan ampliamente no solo en Debian, sino también en sus derivados, como Ubuntu y los derivados de él.

Otra herramienta de administración de paquetes que es popular en los sistemas basados en Debian es Advanced Package Tool (apt), que puede optimizar muchos de los aspectos de la instalación, mantenimiento y eliminación de paquetes, lo que lo hace mucho más fácil.

En esta lección, aprenderemos cómo usar tanto dpkg como apt para obtener, instalar, mantener y eliminar software en un sistema Linux basado en Debian.

La herramienta de paquetería en Debian (dpkg)

La herramienta Debian Package (dpkg) es la utilidad esencial para instalar, configurar, mantener y eliminar paquetes de software en sistemas basados en Debian. La operación más básica es instalar un paquete .deb, que se puede hacer con:

# dpkg -i PACKAGENAME

Donde PACKAGENAME es el nombre del archivo .deb que desea instalar.

Las actualizaciones de paquetes se manejan de la misma manera. Antes de instalar un paquete, dpkg verificará si ya existe una versión anterior en el sistema. Si es así, el paquete se actualizará a la nueva versión. Si no, se instalará una copia nueva.

Manejo de dependencias

La mayoría de las veces, un paquete puede depender de otros para que funcionen. Por ejemplo, un editor de imágenes puede necesitar bibliotecas para abrir archivos JPEG, u otra utilidad puede necesitar un kit de herramientas como Qt o GTK para su interfaz de usuario.

dpkg verificará si esas dependencias están instaladas en su sistema y no podrá instalar el paquete si no lo están. En este caso, dpkg listará qué paquetes faltan. Sin embargo, no puede resolver dependencias por sí mismo. Depende del usuario encontrar los paquetes .deb con las dependencias correspondientes e instalarlos.

En el siguiente ejemplo, el usuario intenta instalar el paquete del editor de video OpenShot, pero faltan algunas dependencias:

# dpkg -i openshot-qt_2.4.3+dfsg1-1_all.deb
(Reading database ... 269630 files and directories currently installed.)
Preparing to unpack openshot-qt_2.4.3+dfsg1-1_all.deb ...
Unpacking openshot-qt (2.4.3+dfsg1-1) over (2.4.3+dfsg1-1) ...
dpkg: dependency problems prevent configuration of openshot-qt:
 openshot-qt depends on fonts-cantarell; however:
  Package fonts-cantarell is not installed.
 openshot-qt depends on python3-openshot; however:
  Package python3-openshot is not installed.
 openshot-qt depends on python3-pyqt5; however:
  Package python3-pyqt5 is not installed.
 openshot-qt depends on python3-pyqt5.qtsvg; however:
  Package python3-pyqt5.qtsvg is not installed.
 openshot-qt depends on python3-pyqt5.qtwebkit; however:
  Package python3-pyqt5.qtwebkit is not installed.
 openshot-qt depends on python3-zmq; however:
  Package python3-zmq is not installed.

dpkg: error processing package openshot-qt (--install):
 dependency problems - leaving unconfigured
Processing triggers for mime-support (3.60ubuntu1) ...
Processing triggers for gnome-menus (3.32.0-1ubuntu1) ...
Processing triggers for desktop-file-utils (0.23-4ubuntu1) ...
Processing triggers for hicolor-icon-theme (0.17-2) ...
Processing triggers for man-db (2.8.5-2) ...
Errors were encountered while processing:
 openshot-qt

Como se muestra, OpenShot depende de los paquetes fonts-cantarell, python3-openshot, python3-pyqt5, python3-pyqt5.qtsvg, python3-pyqt5.qtwebkit y python3-zmq. Todos ellos deben instalarse previamente para que la instalación de OpenShot pueda tener éxito.

Eliminar Paquetes

Para eliminar un paquete, pase el parámetro -r a dpkg, seguido del nombre del paquete. Por ejemplo, el siguiente comando eliminará el paquete unrar del sistema:

# dpkg -r unrar
(Reading database ... 269630 files and directories currently installed.)
Removing unrar (1:5.6.6-2) ...
Processing triggers for man-db (2.8.5-2) ...

La operación de eliminación también ejecuta una verificación de dependencias, y un paquete no se puede eliminar a menos que también se elimine cualquier otro paquete que dependa de él. Si intenta hacerlo, recibirá un mensaje de error como el siguiente:

# dpkg -r p7zip
dpkg: dependency problems prevent removal of p7zip:
 winetricks depends on p7zip; however:
  Package p7zip is to be removed.
 p7zip-full depends on p7zip (= 16.02+dfsg-6).

dpkg: error processing package p7zip (--remove):
 dependency problems - not removing
Errors were encountered while processing:
 p7zip

Puede pasar varios nombres de paquetes a dpkg -r, por lo que se eliminarán todos a la vez.

Cuando se elimina un paquete, los archivos de configuración correspondientes se dejan en el sistema. Si desea eliminar todo lo relacionado con el paquete, use la opción -P (purgar) en lugar de -r.

Note

Puede forzar la instalación o eliminación de un paquete a través de dpkg, incluso si no se cumplen las dependencias, agregando el parámetro --force como por ejemplo dpkg -i --force PACKAGENAME. Sin embargo, hacerlo probablemente dejará el paquete instalado, o incluso su sistema, en un estado incorrecto con paquetes rotos. No use --force a menos que esté absolutamente seguro de lo que está haciendo.

Obtener Información de Paquetes

Para obtener información sobre un paquete .deb, como su versión, arquitectura, mantenedor, dependencias y más, use el comando dpkg con el parámetro -I, seguido del nombre de archivo del paquete que desea inspeccionar:

# dpkg -I google-chrome-stable_current_amd64.deb
 new Debian package, version 2.0.
 size 59477810 bytes: control archive=10394 bytes.
    1222 bytes,    13 lines      control
   16906 bytes,   457 lines   *  postinst             #!/bin/sh
   12983 bytes,   344 lines   *  postrm               #!/bin/sh
    1385 bytes,    42 lines   *  prerm                #!/bin/sh
 Package: google-chrome-stable
 Version: 76.0.3809.100-1
 Architecture: amd64
 Maintainer: Chrome Linux Team <chromium-dev@chromium.org>
 Installed-Size: 205436
 Pre-Depends: dpkg (>= 1.14.0)
 Depends: ca-certificates, fonts-liberation, libappindicator3-1, libasound2 (>= 1.0.16), libatk-bridge2.0-0 (>= 2.5.3), libatk1.0-0 (>= 2.2.0), libatspi2.0-0 (>= 2.9.90), libc6 (>= 2.16), libcairo2 (>= 1.6.0), libcups2 (>= 1.4.0), libdbus-1-3 (>= 1.5.12), libexpat1 (>= 2.0.1), libgcc1 (>= 1:3.0), libgdk-pixbuf2.0-0 (>= 2.22.0), libglib2.0-0 (>= 2.31.8), libgtk-3-0 (>= 3.9.10), libnspr4 (>= 2:4.9-2~), libnss3 (>= 2:3.22), libpango-1.0-0 (>= 1.14.0), libpangocairo-1.0-0 (>= 1.14.0), libuuid1 (>= 2.16), libx11-6 (>= 2:1.4.99.1), libx11-xcb1, libxcb1 (>= 1.6), libxcomposite1 (>= 1:0.3-1), libxcursor1 (>> 1.1.2), libxdamage1 (>= 1:1.1), libxext6, libxfixes3, libxi6 (>= 2:1.2.99.4), libxrandr2 (>= 2:1.2.99.3), libxrender1, libxss1, libxtst6, lsb-release, wget, xdg-utils (>= 1.0.2)
 Recommends: libu2f-udev
 Provides: www-browser
 Section: web
 Priority: optional
 Description: The web browser from Google
  Google Chrome is a browser that combines a minimal design with sophisticated technology to make the web faster, safer, and easier.

Listar paquetes instalados y contenido del paquete

Para obtener una lista de cada paquete instalado en su sistema, use la opción --get-selections, como por ejemplo dpkg --get-selections. También puede obtener una lista de cada archivo instalado por un paquete específico pasando el parámetro -L PACKAGENAME a dpkg, como se muestra a continuación:

# dpkg -L unrar
/.
/usr
/usr/bin
/usr/bin/unrar-nonfree
/usr/share
/usr/share/doc
/usr/share/doc/unrar
/usr/share/doc/unrar/changelog.Debian.gz
/usr/share/doc/unrar/copyright
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/unrar-nonfree.1.gz

Averiguar qué paquete posee un archivo específico

A veces es posible que necesite averiguar qué paquete posee un archivo específico en su sistema. Puede hacerlo utilizando la utilidad dpkg-query, seguida del parámetro -S y la ruta al archivo en cuestión:

# dpkg-query -S /usr/bin/unrar-nonfree
unrar: /usr/bin/unrar-nonfree

Reconfigurar Paquetes Instalados

Cuando se instala un paquete, hay un paso de configuración llamado post-install donde se ejecuta un script para configurar todo lo necesario para que el software se ejecute, como permisos, ubicación de archivos de configuración, etc. Esto también puede generar algunas preguntas de configuración al usuario para establecer preferencias sobre cómo se ejecutará el software.

A veces, debido a un archivo de configuración dañado o con formato incorrecto, es posible que desee restaurar las configuraciones de un paquete a su estado “funcional”. O puede que desee cambiar las respuestas que dio a las preguntas de configuración inicial. Para hacer esto, ejecute la utilidad dpkg-reconfigure, seguida del nombre del paquete.

Este programa realizará una copia de seguridad de los archivos de configuración antiguos, descomprimirá los nuevos en los directorios correctos y ejecutará el script post-install proporcionado por el paquete, como si el paquete se hubiera instalado por primera vez. Intente reconfigurar el paquete tzdata con el siguiente ejemplo:

# dpkg-reconfigure tzdata

Herramienta de Paquetería Avanzada (apt)

Advanced Package Tool (APT) es un sistema de administración de paquetes, que incluye un conjunto de herramientas, que simplifica enormemente la instalación, actualización, eliminación y administración de paquetes. APT proporciona características como capacidades de búsqueda avanzada y resolución de dependencias automática.

APT no es un “sustituto” de dpkg. Puede considerarlo como una “Interfaz (front end)”, que optimiza las operaciones y llena los vacíos de la funcionalidad dpkg, como la resolución de dependencias.

APT trabaja en conjunto con los repositorios de software que contienen los paquetes disponibles para instalar. Dichos repositorios pueden ser un servidor local o remoto o (menos común) incluso un disco CD-ROM.

Las distribuciones de Linux, como Debian y Ubuntu, mantienen sus propios repositorios, y los desarrolladores o grupos de usuarios pueden mantener otros repositorios para proporcionar software que no está disponible en los principales repositorios de distribución.

Existen muchas utilidades que interactúan con APT, siendo las principales:

apt-get

Se utiliza para descargar, instalar, actualizar o eliminar paquetes del sistema.

apt-cache

Se utiliza para realizar operaciones, como búsquedas, en el índice de paquetes.

apt-file

se utiliza para buscar archivos dentro de los paquetes.

También hay una utilidad “más amigable” llamada simplemente apt, que combina las opciones más utilizadas de apt-get y apt-cache en una utilidad. Muchos de los comandos para apt son los mismos que para apt-get, por lo que en muchos casos son intercambiables. Sin embargo, dado que apt puede no estar instalado en un sistema, se recomienda aprender a usar apt-get y apt-cache.

Note

apt y apt-get pueden requerir una conexión de red, porque los paquetes y los índices de paquetes pueden necesitar descargarse de un servidor remoto.

Actualización de los Índices de Paquetes

Antes de instalar o actualizar un software con APT, se recomienda actualizar primero el índice de paquetes para recuperar información sobre paquetes nuevos y actualizados. Esto se hace con el comando apt-get, seguido del parámetro update:

# apt-get update
Ign:1 http://dl.google.com/linux/chrome/deb stable InRelease
Hit:2 https://repo.skype.com/deb stable InRelease
Hit:3 http://us.archive.ubuntu.com/ubuntu disco InRelease
Hit:4 http://repository.spotify.com stable InRelease
Hit:5 http://dl.google.com/linux/chrome/deb stable Release
Hit:6 http://apt.pop-os.org/proprietary disco InRelease
Hit:7 http://ppa.launchpad.net/system76/pop/ubuntu disco InRelease
Hit:8 http://us.archive.ubuntu.com/ubuntu disco-security InRelease
Hit:9 http://us.archive.ubuntu.com/ubuntu disco-updates InRelease
Hit:10 http://us.archive.ubuntu.com/ubuntu disco-backports InRelease
Reading package lists... Done
Tip

En lugar de apt-get update, también puede utilizar apt update.

Instalar y Remover Paquetes

Con los índices de paquetes actualizados, ahora puede instalar un paquete. Esto se hace con apt-get install, seguido del nombre del paquete que desea instalar:

# apt-get install xournal
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
  xournal
0 upgraded, 1 newly installed, 0 to remove and 75 not upgraded.
Need to get 285 kB of archives.
After this operation, 1041 kB of additional disk space will be used.

Del mismo modo, para eliminar un paquete, use apt-get remove, seguido del nombre del paquete:

# apt-get remove xournal
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
  xournal
0 upgraded, 0 newly installed, 1 to remove and 75 not upgraded.
After this operation, 1041 kB disk space will be freed.
Do you want to continue? [Y/n]

Tenga en cuenta que al instalar o eliminar paquetes, APT hará una resolución de dependencias automática. Esto significa que cualquier paquete adicional que necesite el paquete que está instalando también se instalará, y que los paquetes que dependen del paquete que está eliminando también se eliminarán. APT siempre mostrará lo que se instalará o eliminará y le preguntará si desea continuar:

# apt-get remove p7zip
Reading package lists... Done
Building dependency tree
The following packages will be REMOVED:
  android-libbacktrace android-libunwind android-libutils
  android-libziparchive android-sdk-platform-tools fastboot p7zip p7zip-full
0 upgraded, 0 newly installed, 8 to remove and 75 not upgraded.
After this operation, 6545 kB disk space will be freed.
Do you want to continue? [Y/n]

Tenga en cuenta que cuando se elimina un paquete, los archivos de configuración correspondientes quedan en el sistema. Para eliminar el paquete y cualquier archivo de configuración, use el parámetro purge en lugar de remove o el parámetro remove con la opción --purge:

# apt-get purge p7zip

o

# apt-get remove --purge p7zip
Tip

También puede utilizar apt install y apt remove.

Reparar Dependencias Rotas

Es posible tener “dependencias rotas” en un sistema. Esto significa que uno o más de los paquetes instalados dependen de otros paquetes que no se han instalado o que ya no están presentes. Esto puede suceder debido a un error de APT o debido a un paquete instalado manualmente.

Para resolver esto, use el comando apt-get install -f. Esto intentará “arreglar” los paquetes rotos instalando las dependencias que faltan, asegurando que todos los paquetes sean consistentes nuevamente.

Tip

También puede usar apt install -f.

Actualizar Paquetes

APT se puede utilizar para actualizar automáticamente cualquier paquete instalado a las últimas versiones disponibles desde los repositorios. Esto se hace con el comando apt-get upgrade. Antes de ejecutarlo, primero actualice el índice de paquetes con apt-get update:

# apt-get update
Hit:1 http://us.archive.ubuntu.com/ubuntu disco InRelease
Hit:2 http://us.archive.ubuntu.com/ubuntu disco-security InRelease
Hit:3 http://us.archive.ubuntu.com/ubuntu disco-updates InRelease
Hit:4 http://us.archive.ubuntu.com/ubuntu disco-backports InRelease
Reading package lists... Done

# apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following packages have been kept back:
  gnome-control-center
The following packages will be upgraded:
  cups cups-bsd cups-client cups-common cups-core-drivers cups-daemon
  cups-ipp-utils cups-ppdc cups-server-common firefox-locale-ar (...)

74 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
Need to get 243 MB of archives.
After this operation, 30.7 kB of additional disk space will be used.
Do you want to continue? [Y/n]

El resumen en la parte inferior de la salida muestra cuántos paquetes se actualizarán, cuántos se instalarán, eliminarán o retendrán, el tamaño total de descarga y cuánto espacio de disco adicional será necesario para completar la operación. Para completar la actualización, simplemente responda Y y espere a que apt-get termine la tarea.

Para actualizar un solo paquete, simplemente ejecute apt-get upgrade seguido del nombre del paquete. Como en dpkg, apt-get primero verificará si está instalada una versión anterior del paquete. Si es así, el paquete se actualizará a la versión más nueva disponible en el repositorio. Si no, se instalará una copia nueva.

Tip

También puede utilizar apt upgrade y apt update.

La Caché Local

Cuando instala o actualiza un paquete, el archivo .deb correspondiente se descarga en un directorio de caché local antes de instalar el paquete. Por defecto, este directorio es /var/cache/apt/archives. Los archivos descargados parcialmente se copian a /var/cache/apt/archives/partial/.

A medida que instala y actualiza paquetes, el directorio de caché puede ser bastante grande. Para recuperar espacio, puede vaciar la caché utilizando el comando apt-get clean. Esto eliminará el contenido de los directorios /var/cache/apt/archives y /var/cache/apt/archives/partial/.

Tip

También puede utilizar apt clean.

Buscar Paquetes

La utilidad apt-cache se puede usar para realizar operaciones en el índice de paquetes, como buscar un paquete específico o listar qué paquetes contienen un archivo específico.

Para realizar una búsqueda, use apt-cache search seguido de un patrón de búsqueda. El resultado será una lista de cada paquete que contiene el patrón, ya sea en el nombre del paquete, la descripción o los archivos proporcionados.

# apt-cache search p7zip
liblzma-dev - XZ-format compression library - development files
liblzma5 - XZ-format compression library
forensics-extra - Forensics Environment - extra console components (metapackage)
p7zip - 7zr file archiver with high compression ratio
p7zip-full - 7z and 7za file archivers with high compression ratio
p7zip-rar - non-free rar module for p7zip

En el ejemplo anterior, la entrada liblzma5 - XZ-format compression library no parece coincidir con el patrón. Sin embargo, si mostramos la información completa, incluida la descripción, del paquete usando el parámetro show, encontraremos el patrón allí:

# apt-cache show liblzma5
Package: liblzma5
Architecture: amd64
Version: 5.2.4-1
Multi-Arch: same
Priority: required
Section: libs
Source: xz-utils
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Jonathan Nieder <jrnieder@gmail.com>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 259
Depends: libc6 (>= 2.17)
Breaks: liblzma2 (<< 5.1.1alpha+20110809-3~)
Filename: pool/main/x/xz-utils/liblzma5_5.2.4-1_amd64.deb
Size: 92352
MD5sum: 223533a347dc76a8cc9445cfc6146ec3
SHA1: 8ed14092fb1caecfebc556fda0745e1e74ba5a67
SHA256: 01020b5a0515dbc9a7c00b464a65450f788b0258c3fbb733ecad0438f5124800
Homepage: https://tukaani.org/xz/
Description-en: XZ-format compression library
 XZ is the successor to the Lempel-Ziv/Markov-chain Algorithm
 compression format, which provides memory-hungry but powerful
 compression (often better than bzip2) and fast, easy decompression.
 .
 The native format of liblzma is XZ; it also supports raw (headerless)
 streams and the older LZMA format used by lzma. (For 7-Zip's related
 format, use the p7zip package instead.)

Puede usar expresiones regulares con el patrón de búsqueda, lo que permite búsquedas muy complejas (y precisas). Sin embargo, este tema está fuera del alcance de esta lección.

Tip

También puede utilizar apt search en lugar de apt-cache search y apt show en lugar de apt-cache show.

La Lista de Fuentes

APT utiliza una lista de fuentes para saber de dónde obtener paquetes. Esta lista se almacena en el archivo sources.list, ubicado dentro del directorio /etc/apt. Este archivo se puede editar directamente con un editor de texto, como vi, pico o nano, o con utilidades gráficas como aptitude o synaptic.

Una línea típica dentro de sources.list se ve así:

deb http://us.archive.ubuntu.com/ubuntu/ disco main restricted universe multiverse

La sintaxis es tipo de archivo, URL, distribución y uno o más componentes, donde:

Tipo de archivo

Un repositorio puede contener paquetes con software listo para ejecutar (paquetes binarios, descrito como deb) o con el código fuente de este software (paquetes fuente, descrito como deb-src). El ejemplo anterior proporciona paquetes binarios.

URL

La URL del repostorio.

Distribución

El nombre (o nombre en clave) de la distribución para la que se proporcionan los paquetes. Un repositorio puede alojar paquetes para múltiples distribuciones. En el ejemplo anterior, disco es el nombre en clave de Ubuntu 19.04 Disco Dingo.

Componentes

Cada componente representa un conjunto de paquetes. Estos componentes pueden ser diferentes en diferentes distribuciones de Linux. Por ejemplo, en Ubuntu y derivados, son:

main

contiene paquetes de código abierto con soporte oficial.

restricted

contiene software de código cerrado con soporte oficial, como controladores de dispositivo para tarjetas gráficas, por ejemplo.

universe

contiene software de código abierto mantenido por la comunidad.

multiverse

contiene software no compatible, de código cerrado o con patente gravada.

En Debian, los componentes principales son:

main

consiste en paquetes que cumplen con las Directrices de software libre de Debian (DFSG), que no dependen de software fuera de esta área para operar. Los paquetes incluidos aquí se consideran parte de la distribución Debian.

contrib

contiene paquetes compatibles con DFSG, pero que dependen de otros paquetes que no están en main.

non-free

contiene paquetes que no son compatibles con DFSG.

security

contiene actualizaciones de seguridad.

backports

contiene versiones más recientes de paquetes que están en main. El ciclo de desarrollo de las versiones estables de Debian es bastante largo (alrededor de dos años), y esto asegura que los usuarios puedan obtener los paquetes más actualizados sin tener que modificar el repositorio principal main.

Note

Puede aprender más sobre las Debian Free Software Guidelines en: https://www.debian.org/social_contract#guidelines

Para agregar un nuevo repositorio de paquetes, simplemente puede agregar la línea correspondiente (generalmente proporcionada por el responsable del repositorio) al final de sources.list, guarde el archivo y vuelva a cargar el índice del paquete con apt-get update . Después de eso, los paquetes en el nuevo repositorio estarán disponibles para la instalación usando apt-get install.

Tenga en cuenta que las líneas que comienzan con el carácter # se consideran comentarios y se ignoran.

El Directorio /etc/apt/sources.list.d

Dentro del directorio /etc/apt/sources.list.d puede agregar archivos con repositorios adicionales para ser utilizados por APT, sin la necesidad de modificar el archivo principal /etc/apt/sources.list. Estos son archivos de texto simples, con la misma sintaxis descrita anteriormente y la extensión de archivo .list.

A continuación puede ver el contenido de un archivo llamado /etc/apt/sources.list.d/buster-backports.list:

deb http://deb.debian.org/debian buster-backports main contrib non-free
deb-src http://deb.debian.org/debian buster-backports main contrib non-free
Listar el contenido de paquetes y búsqueda de archivos

Una utilidad llamada apt-file puede usarse para realizar más operaciones en el índice de paquetes, como listar el contenido de un paquete o encontrar un paquete que contenga un archivo específico. Es posible que esta utilidad no esté instalada de manera predeterminada en su sistema. En este caso, generalmente puede instalarlo usando apt-get:

# apt-get install apt-file

Después de la instalación, deberá actualizar la caché del paquete utilizada para apt-file:

# apt-file update

Esto generalmente toma solo unos segundos. Después de eso, apt-file estará listo para usarse.

Para enumerar el contenido de un paquete, use el parámetro list seguido del nombre del paquete:

# apt-file list unrar
unrar: /usr/bin/unrar-nonfree
unrar: /usr/share/doc/unrar/changelog.Debian.gz
unrar: /usr/share/doc/unrar/copyright
unrar: /usr/share/man/man1/unrar-nonfree.1.gz
Tip

También puede usar apt list en lugar de apt-file list.

Puede buscar un archivo en todos los paquetes utilizando el parámetro search, seguido del nombre del archivo. Por ejemplo, si desea saber qué paquete proporciona un archivo llamado libSDL2.so, puede usar:

# apt-file search libSDL2.so
libsdl2-dev: /usr/lib/x86_64-linux-gnu/libSDL2.so

La respuesta es el paquete libsdl2-dev, que proporciona el archivo /usr/lib/x86_64-linux-gnu/libSDL2.so.

La diferencia entre apt-file search y dpkg-query es que apt-file search también buscará paquetes desinstalados, mientras que dpkg-query solo puede mostrar archivos que pertenecen a un paquete instalado.

Ejercicios Guiados

  1. ¿Cuál es el comando para instalar un paquete llamado package.deb usando dpkg?

  2. Usando dpkg-query, encuentre qué paquete contiene un archivo llamado 7zr.1.gz.

  3. ¿Puede eliminar un paquete llamado unzip del sistema usando dpkg -r unzip si el paquete file-roller depende de él? Si no, ¿cuál sería la forma correcta de hacerlo?

  4. Usando apt-file, ¿cómo puede averiguar qué paquete contiene el archivo unrar?

  5. Usando apt-cache, ¿cuál es el comando para mostrar información para el paquete gimp?

Ejercicios Exploratorios

  1. Considere un repositorio con paquetes fuente de Debian para la distribución xenial, alojado en http://us.archive.ubuntu.com/ubuntu/ y con paquetes para el componente universe. ¿Cuál sería la línea correspondiente que se agregará a /etc/apt/sources.list?

  2. Mientras compila un programa, se encuentra con un mensaje de error indicándole que el archivo de cabecera zzip-io.h no está presente en su sistema. ¿Cómo puede averiguar qué paquete proporciona ese archivo?

  3. ¿Cómo puede ignorar una advertencia de dependencia y eliminar un paquete usando dpkg, incluso si hay paquetes que dependen de él en el sistema?

  4. ¿Cómo puede obtener más información sobre un paquete llamado midori usando apt?

  5. Antes de instalar o actualizar paquetes con apt, ¿qué comando se debe usar para garantizar que el índice de paquetes esté actualizado?

Resumen

En esta lección aprendimos:

  • ¿Cómo usar dpkg para instalar y eliminar paquetes?

  • ¿Cómo listar los paquetes instalados y el contenido del paquete?

  • ¿Cómo reconfigurar un paquete instalado?

  • ¿Qué es apt?, y cómo instalar, actualizar y eliminar paquetes que lo usan.

  • ¿Cómo usar apt-cache para buscar paquetes?

  • ¿Cómo funciona el archivo /etc/apt/sources.list?

  • ¿Cómo usar apt-file para mostrar el contenido de un paquete?, o ¿cómo encontrar qué paquete contiene un archivo específico?

Los siguientes comandos se discutieron en esta lección:

dpkg -i

Instala un paquete individual o una lista de paquetes separados por espacios.

dpkg -r

Elimina un paquete o una lista de paquetes separados por espacios.

dpkg -I

Inspecciona un paquete, proporcionando detalles sobre el software que instala y las dependencias necesarias.

dpkg --get-selections

Enumera todos los paquetes que dpkg ha instalado en el sistema.

dpkg -L

Imprime una lista de cada archivo que instala un paquete en particular.

dpkg-query

Con un nombre de archivo especificado, este comando imprimirá el paquete que instaló el archivo.

dpkg-reconfigure

Este comando volverá a ejecutar una secuencia de comandos post-install de paquetes para que un administrador pueda hacer ajustes de configuración a la instalación del paquete.

apt-get update

Este comando actualizará el índice del paquete local para que coincida con lo que está disponible dentro de los repositorios configurados en el directorio /etc/apt/.

apt-get install

Este comando descargará un paquete desde un repositorio remoto y lo instalará junto con sus dependencias, también se puede usar para instalar un paquete Debian que ya se ha descargado.

apt-get remove

Este comando desinstalará los paquetes especificados del sistema.

apt-cache show

Al igual que el comando dpkg -I, este comando puede usarse para mostrar detalles en un paquete específico.

apt-cache search

Este comando buscará en su base de datos APT local en caché un paquete en particular.

apt-file update

Este comando actualizará la caché del paquete para que el comando apt-file pueda consultar su contenido.

apt-file search

Este comando puede buscar el nombre de un paquete que ha instalado un archivo en particular, al igual que el comando dpkg-query.

apt-file list

Este comando se usa para listar el contenido de un paquete, al igual que el comando dpkg -L.

Respuestas a los ejercicios guiados

  1. ¿Cuál es el comando para instalar un paquete llamado package.deb usando dpkg?

    Utilice el parámetro -i a dpkg:

    # dpkg -i package.deb
  2. Usando dpkg-query, encuentre ¿qué paquete contiene un archivo llamado 7zr.1.gz?

    Agregue el parámetro -S a dpkg-query:

    # dpkg-query -S 7zr.1.gz
  3. ¿Puede eliminar un paquete llamado unzip del sistema usando dpkg -r unzip si el paquete file-roller depende de él? Si no, ¿cuál sería la forma correcta de hacerlo?

    No. dpkg no resolverá las dependencias y no le permitirá eliminar un paquete si otro paquete instalado depende de él. En este ejemplo, primero puede eliminar file-roller (suponiendo que nada depende de él) y luego eliminar unzip, o eliminar ambos al mismo tiempo con:

    # dpkg -r unzip file-roller
  4. ¿Cómo puede averiguar qué paquete contiene el archivo /usr/bin/unrar utilizando la utilidad apt-file?

    Use el parámetro search seguido de la ruta (o nombre de archivo):

    # apt-file search /usr/bin/unrar
  5. Usando apt-cache, ¿cuál es el comando para mostrar información para el paquete gimp?

    Use el parámetro show seguido del nombre del paquete:

    # apt-cache show gimp

Respuestas a ejercicios exploratorios

  1. Considere un repositorio con paquetes fuente de Debian para la distribución xenial, alojado en http://us.archive.ubuntu.com/ubuntu/ y con paquetes para el componente universe. ¿Cuál sería la línea correspondiente que se agregará a /etc/apt/sources.list?

    Los paquetes fuente son del tipo deb-src, por lo que la línea debe ser:

    deb-src http://us.archive.ubuntu.com/ubuntu/ xenial universe

    Esta línea también podría agregarse dentro de un archivo .list en /etc/apt/sources.list.d/. El nombre depende de usted, pero debe ser descriptivo, algo así como xenial_sources.list.

  2. Mientras compila un programa, se encuentra con un mensaje de error indicándole que el archivo de cabecera zzip-io.h no está presente en su sistema. ¿Cómo puede averiguar qué paquete proporciona ese archivo?

    Use apt-file search para encontrar qué paquete contiene un archivo que no está presente en el sistema:

    # apt-file search zzip-io.h
  3. ¿Cómo puede ignorar una advertencia de dependencia y eliminar un paquete usando dpkg, incluso si hay paquetes que dependen de él en el sistema?

    Se puede usar el parámetro --force, pero esto nunca se debe hacer a menos que sepa exactamente lo que está haciendo, ya que existe un gran riesgo de que su sistema quede en un estado inconsistente o “roto”.

  4. ¿Cómo puede obtener más información sobre un paquete llamado midori usando apt-cache?

    Use apt-cache show seguido del nombre del paquete:

    # apt-cache show midori
  5. Antes de instalar o actualizar paquetes con apt-get, ¿qué comando se debe usar para garantizar que el índice de paquetes esté actualizado?

    Se debe usar apt-get update. Esto descargará los últimos índices de paquetes de los repositorios descritos en el archivo /etc/apt/sources.list o en el directorio /etc/apt/sources.list.d/.

Linux Professional Insitute Inc. Todos los derechos reservados. Visite el sitio web de Learning Materials: https://learning.lpi.org
Este trabajo está registrado bajo la Licencia Internacional Creative Commons Attribution-NonCommercial-NoDerivatives 4.0

Linux Professional Insitute Inc. Todos los derechos reservados. Visite el sitio web de Learning Materials: https://learning.lpi.org
Este trabajo está registrado bajo la Licencia Internacional Creative Commons Attribution-NonCommercial-NoDerivatives 4.0

LPI es una organización sin fines de lucro.

© 2023 Linux Professional Institute (LPI) es la organización global de certificación y apoyo académico para profesionales de código abierto. Con más de 200,000 titulares de certificación, es el primer y más grande organismo de certificación no comercial del mundo para Linux y Open Source. LPI cuenta con profesionales certificados en más de 180 países, realiza exámenes en varios idiomas y tiene cientos de socios de capacitación.

Nuestro propósito es hacer que las oportunidades económicas y creativas estén disponibles para todos, haciendo que el conocimiento de código abierto y la certificación sea universalmente accesible.

  • LinkedIn
  • flogo-RGB-HEX-Blk-58 Facebook
  • Twitter
  • Contáctenos
  • Política de privacidad y cookies

¿Detecta un error o desea ayudar a mejorar esta página? Por favor háznoslo saber.

© 1999–2023 The Linux Professional Institute Inc. Todos los derechos reservados.