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 |
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
|
|
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 |
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 |
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 |
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 |
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 |
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 |
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 comodeb-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 principalmain
.
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 |
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
-
¿Cuál es el comando para instalar un paquete llamado
package.deb
usandodpkg
? -
Usando
dpkg-query
, encuentre qué paquete contiene un archivo llamado7zr.1.gz
. -
¿Puede eliminar un paquete llamado
unzip
del sistema usandodpkg -r unzip
si el paquetefile-roller
depende de él? Si no, ¿cuál sería la forma correcta de hacerlo? -
Usando
apt-file
, ¿cómo puede averiguar qué paquete contiene el archivounrar
? -
Usando
apt-cache
, ¿cuál es el comando para mostrar información para el paquetegimp
?
Ejercicios Exploratorios
-
Considere un repositorio con paquetes fuente de Debian para la distribución
xenial
, alojado enhttp://us.archive.ubuntu.com/ubuntu/
y con paquetes para el componenteuniverse
. ¿Cuál sería la línea correspondiente que se agregará a/etc/apt/sources.list
? -
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? -
¿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? -
¿Cómo puede obtener más información sobre un paquete llamado
midori
usandoapt
? -
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
-
¿Cuál es el comando para instalar un paquete llamado
package.deb
usandodpkg
?Utilice el parámetro
-i
adpkg
:# dpkg -i package.deb
-
Usando
dpkg-query
, encuentre ¿qué paquete contiene un archivo llamado7zr.1.gz
?Agregue el parámetro
-S
adpkg-query
:# dpkg-query -S 7zr.1.gz
-
¿Puede eliminar un paquete llamado
unzip
del sistema usandodpkg -r unzip
si el paquetefile-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 eliminarfile-roller
(suponiendo que nada depende de él) y luego eliminarunzip
, o eliminar ambos al mismo tiempo con:# dpkg -r unzip file-roller
-
¿Cómo puede averiguar qué paquete contiene el archivo
/usr/bin/unrar
utilizando la utilidadapt-file
?Use el parámetro
search
seguido de la ruta (o nombre de archivo):# apt-file search /usr/bin/unrar
-
Usando
apt-cache
, ¿cuál es el comando para mostrar información para el paquetegimp
?Use el parámetro
show
seguido del nombre del paquete:# apt-cache show gimp
Respuestas a ejercicios exploratorios
-
Considere un repositorio con paquetes fuente de Debian para la distribución
xenial
, alojado enhttp://us.archive.ubuntu.com/ubuntu/
y con paquetes para el componenteuniverse
. ¿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í comoxenial_sources.list
. -
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
-
¿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”. -
¿Cómo puede obtener más información sobre un paquete llamado
midori
usandoapt-cache
?Use
apt-cache show
seguido del nombre del paquete:# apt-cache show midori
-
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/
.