Aprenda la administración de dependencias usando el comando ldd para administrar mejor su máquina Linux y los paquetes instalados.
La gestión de dependencias es una parte integral del mantenimiento de su sistema Linux. El software es complejo y depende de una multitud de bibliotecas y archivos compartidos. A veces, se vuelve difícil hacer un seguimiento de los archivos requeridos por una aplicación.
Aquí es donde entra en juego el comando ldd en Linux. ldd es una herramienta de línea de comandos ingeniosa para realizar un seguimiento de las dependencias de objetos compartidos requeridas por una aplicación.
¡Aprendamos cómo puede usar el comando ldd a su favor y convertirse en un profesional en la administración de dependencias en Linux!
¿Qué son las dependencias de paquetes?
El software no es solo un código fuente independiente, sino una combinación de código fuente nativo y código prestado de bibliotecas externas. Cuando estas bibliotecas y otros objetos compartidos no se encuentran en su sistema, una aplicación que dependa de ellos puede funcionar mal o simplemente negarse a iniciarse.
Todos estos archivos compartidos, paquetes, bibliotecas, etc., se denominan dependencias acumulativas en Linux. Aunque esta breve definición le da una idea aproximada de las dependencias, la imagen real es un poco más compleja que eso, y es por eso que es importante aprender qué dependencias de paquetes son a fondo.
¿Qué es el comando ldd y cómo funciona?
ldd es una abreviatura de Listar dependencias dinámicas. Como sugiere el nombre, ldd enumera todos los objetos compartidos requeridos por una aplicación.
Funciona invocando el enlazador dinámico con un ajuste especial Variables de entorno. Cuando ejecuta ldd con la ubicación de un binario, devuelve una salida que contiene la lista de dependencias, su ubicación y un valor hexadecimal que representa en qué parte de la memoria se cargan.
Encontrar dependencias de objetos compartidos con el comando ldd
Ahora que tiene una idea clara de qué se trata ldd, pongámonos manos a la obra y aprendamos cómo puede encontrar dependencias de software con él.
Antes de aprender a usar ldd, primero confirme si lo tiene instalado en su sistema imprimiendo la versión instalada de ldd:
ldd --versión
si regresa un error de "comando no encontrado", primero debe instalar ldd.
En sistemas basados en Ubuntu y Debian, ejecute:
sudo apt install libc-bin
Para distribuciones basadas en Arch:
sudo pacman -S glibc
En RHEL y Fedora:
sudo dnf instalar glibc-común
Con ldd instalado, ahora puede concentrarse en aprender a usarlo. Aquí está la sintaxis básica para el comando ldd:
ldd ubicación_binaria
En caso de que no sepa la ubicación del binario, puede hacer uso de uno de los muchos operadores de línea de comandos de Linux y combine la salida del comando which con ldd para encontrar las dependencias del paquete:
ldd -flag $(cual nombre_binario)
El comando ldd ofrece cuatro opciones diferentes para modificar la salida. Ellos son:
- -v: Imprime una salida detallada que incluye información adicional, como información de la versión para cada dependencia.
- -u: Imprime todas las dependencias no utilizadas, es decir, las dependencias que están cargadas pero no implementadas
- -d: Imprime objetos faltantes y realiza reubicaciones
- -r: Imprime objetos y funciones que faltan y realiza reubicaciones
Gestión de dependencias de paquetes en Linux
Con ldd en su arsenal de software, podrá solucionar problemas relacionados con la dependencia de objetos compartidos con su aplicación.
Además, como ldd también genera la ubicación donde se carga una biblioteca, podrá depurar una aplicación y comprender mejor cómo se implementa una biblioteca en particular. ldd también imprime las versiones de las bibliotecas compartidas utilizadas en una aplicación.
Con esta función, puede auditar sus aplicaciones en busca de posibles vulnerabilidades asociadas con una versión desactualizada de una biblioteca compartida.
La gestión de dependencias es una habilidad central que es crucial para mantener su sistema Linux en buen estado. Sin embargo, a veces, un paquete puede fallar a pesar de que todas sus dependencias están en buen estado. Es importante que sepa cómo encontrar y reparar paquetes rotos.