La instalación de aplicaciones a través de la línea de comandos es bastante fácil en Ubuntu/Debian. Todo lo que necesita hacer es usar apt install nombre_paquete.
Pero, ¿qué sucede si desea conocer las dependencias de un paquete antes o después de instalarlo?
En este tutorial, le mostraré varias formas de ver las dependencias de un paquete en Ubuntu y otras distribuciones de Linux basadas en Debian que usan el sistema de administración de paquetes APT.
¿Qué es la dependencia de paquetes en Ubuntu?
Si aún no lo sabía, cuando instala un paquete de software en Linux, a veces, necesita otros paquetes para funcionar correctamente. Estos paquetes adicionales se denominan dependencias. Si estos paquetes de dependencia no están instalados en el sistema, generalmente se instala automáticamente con el paquete.
Por ejemplo, la herramienta GUI HandBrake para convertir formatos de video necesita FFmpeg, GStreamer. Entonces, para HandBrake, FFmpeg y GStreamer son las dependencias.
Si no tiene estos paquetes instalados en su sistema, se instalarán automáticamente cuando instale HandBrake en Ubuntu.
Comprobar las dependencias de un paquete en distribuciones basadas en Ubuntu y Debian
Como suele suceder en Linux, hay más de una forma de lograr el mismo resultado. Veamos varias formas de ver las dependencias de un paquete.
Comprobando dependencias con apt show
Puede usar el comando apt show para mostrar los detalles de un paquete. Parte de esta información son dependencias y puede verla en la línea que comienza con Depends.
Por ejemplo, esto es lo que muestra para el paquete ubuntu-restricted-extras.
[email protected]:~$ apt show ubuntu-restricted-extras
Package: ubuntu-restricted-extras
Version: 67
Priority: optional
Section: multiverse/metapackages
Origin: Ubuntu
Maintainer: Ubuntu Developers <[email protected]>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 14.3 kB
Depends: ubuntu-restricted-addons
Recommends: libavcodec-extra, ttf-mscorefonts-installer, unrar
Download-Size: 3,200 B
APT-Manual-Installed: yes
APT-Sources: http://us.archive.ubuntu.com/ubuntu focal/multiverse amd64 Packages
Description: Commonly used media codecs and fonts for Ubuntu
This collection of packages includes:
- MP3 and other audio codec software to play various audio formats
(GStreamer plugins)
- software to install the Microsoft Web fonts
- the Adobe Flash plugin
- LAME, software to create compressed audio files.
.
This software does not include libdvdcss2, and will not let you play
encrypted DVDs. For more information, see
https://help.ubuntu.com/community/RestrictedFormats/PlayingDVDs
.
These software packages are from the Multiverse channel, restricted by
copyright or legal issues in some countries. For more information, see
http://www.ubuntu.com/ubuntu/licensing
Como puede ver, el paquete ubuntu-restricted-extras depende del paquete ubuntu-restricted-addons.
¡Aquí hay una trampa! El paquete de dependencia también puede depender de algún otro paquete y la cadena podría continuar. Afortunadamente, el administrador de paquetes APT se encarga de esto instalando automáticamente todas las dependencias (la mayoría de las veces).
¿Cuál es el paquete recomendado?
¿Notaste la línea que comienza con Recomendado en el resultado anterior?
Los paquetes recomendados no son dependencias directas del paquete, pero habilitan funciones adicionales.
Como puede ver, ubuntu-restricted-extras tiene ttf-mscorefonts-installer como paquete recomendado para instalar Microsoft Fonts en Ubuntu.
Los paquetes recomendados también se instalan de forma predeterminada y si desea prohibir explícitamente la instalación del paquete recomendado, use el indicador –no-install-recommends como este:
sudo apt install –no-install-recomienda nombre_paquete
Utilice apt-cache para obtener solo la información de las dependencias
El programa apto tiene demasiada información. Si desea obtener las dependencias en un script, el comando apt-cache le brinda una salida mejor y más limpia.
apt-cache depends package_name
La salida se ve mucho más limpia, ¿no es así?
Comprueba las dependencias de un archivo DEB usando dpkg
Tanto el comando apt como el apt-cache funcionan en los paquetes que están disponibles en los repositorios. Pero si descarga un archivo DEB, este comando no funcionará.
En este caso, puede usar el comando dpkg con la opción -I o –info.
dpkg -I path_to_deb_file
Las dependencias se pueden ver en la línea que comienza con Depends.
Comprobando dependencias y dependencias inversas con apt-rdepends
Si desea más detalles sobre las dependencias, puede utilizar la herramienta apt-rdepends. Esta herramienta crea el árbol de dependencia completo. Entonces, obtienes la dependencia de un paquete y las dependencias de las dependencias también.
No es un comando apt regular y tendrás que instalarlo desde el repositorio del universo:
sudo apt install apt-rdepends
La salida suele ser bastante grande dependiendo del árbol de dependencia.
Reading package lists... Done
Building dependency tree
Reading state information... Done
shutter
Depends: procps
Depends: xdg-utils
imagemagick
Depends: imagemagick-6.q16 (>= 8:6.9.2.10+dfsg-2~)
imagemagick-6.q16
Depends: hicolor-icon-theme
Depends: libc6 (>= 2.4)
Depends: libmagickcore-6.q16-6 (>= 8:6.9.10.2)
Depends: libmagickwand-6.q16-6 (>= 8:6.9.10.2)
hicolor-icon-theme
libc6
Depends: libcrypt1 (>= 1:4.4.10-10ubuntu4)
Depends: libgcc-s1
libcrypt1
Depends: libc6 (>= 2.25)
La herramienta apt-rdepends es bastante versátil. También puede calcular las dependencias inversas. Lo que significa que puede ver qué otros paquetes dependen de un determinado paquete.
apt-rdepends -r package_name
La salida podría ser bastante grande porque imprimirá el árbol de dependencia inverso.
[email protected]:~$ apt-rdepends -r ffmpeg
Reading package lists... Done
Building dependency tree
Reading state information... Done
ffmpeg
Reverse Depends: ardour-video-timeline (>= 1:5.12.0-3ubuntu4)
Reverse Depends: deepin-screen-recorder (5.0.0-1build2)
Reverse Depends: devede (4.15.0-2)
Reverse Depends: dvd-slideshow (0.8.6.1-1)
Reverse Depends: green-recorder (>= 3.2.3)
Espero que este tutorial rápido haya sido útil para mejorar un poco su conocimiento de la línea de comandos. Estén atentos para más consejos de este tipo.