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 .deb |
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
desempaquetar 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 hardware para compilar grandes proyectos como el núcleo de Linux (Kernel) 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.
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 este tema, 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:
# dkpg -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 o en la descripción del mismo.
# 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).
Tip
|
También puede utilizar |
La Lista de
Fuentes (Repositorios)
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 oficialmente compatibles.
restricted
-
Contiene software de código fuente cerrado oficialmente compatible, como controladores de dispositivos para tarjetas gráficas.
universe
-
Contiene software de código abierto mantenido por la comunidad.
multiverse
-
Contiene software no soportado, de código cerrado o con patente.
-
El nombre de los componentes es propio de cada distibución. En Debian, los componentes principales son:
main
-
Contiene en paquetes que cumplen con las Debian Free Software Guidelines (DFSG), que no dependen de software fuera de esta área para operar. Los paquetes incluidos aquí se consideran parte de la distribución de 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 cumplen con el 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/
.