Scroll to navigation

ldd(1) General Commands Manual ldd(1)

NOMBRE

ldd - muestra las dependencias de objetos compartidos

SINOPSIS

ldd [opción]... fichero....

DESCRIPCIÓN

ldd muestra las bibliotecas compartidas requeridas por cada programa o biblioteca compartida especificada en la línea de órdenes. Un ejemplo de su uso sería el siguiente:


$ ldd /bin/ls

linux-vdso.so.1 (0x00007ffcc3563000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f87e5459000)
libcap.so.2 => /lib64/libcap.so.2 (0x00007f87e5254000)
libc.so.6 => /lib64/libc.so.6 (0x00007f87e4e92000)
libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f87e4c22000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f87e4a1e000)
/lib64/ld-linux-x86-64.so.2 (0x00005574bf12e000)
libattr.so.1 => /lib64/libattr.so.1 (0x00007f87e4817000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f87e45fa000)

Normalmente, ldd invoca el enlazador dinámico estándar (consulte ld.so(8)) con la variable de entorno LD_TRACE_LOADED_OBJECTS con el valor 1. Esto hará que el enlazador dinámico inspeccione las dependencias dinámicas del programa, encuentre (según las reglas descritas en ld.so(8)) y cargue los objetos para satisfacerlas. Para cada dependencia, ldd muestra la ubicación del objeto coincidente y la dirección (hexadecimal) en la que se carga. (Las dependencias compartidas linux-vdso e ld-linux son especiales; consulte vdso(7) y ld.so(8).)

Seguridad

Tenga en cuenta que en algunas circunstancias (por ejemplo, cuando el programa especifica un intérprete ELF distinto de ld-linux.so), algunas versiones de ldd tratarán de averiguar las dependencias intentando ejecutar directamente el programa, lo que puede dar lugar a la ejecución de cualquier código definido en el intérprete ELF del mismo, y quizás a la ejecución del propio programa. (En las versiones de glibc anteriores a 2.27, la implementación de ldd original hacía esto, aunque la mayoría de las distribuciones proporcionaron una versión modificada para evitarlo.

De ahí que NUNCA se debería usar ldd con un ejecutable del que no se conozca su procedencia, ya que podría ejecutar código malicioso. Una alternativa más segura para dichos ejecutables desconocidos sería:


$ objdump -p /ruta/hasta/el/program | grep NEEDED

Esta alternativa solo mostrará las dependencias directas del ejecutable, mientras que ldd muestra el árbol completo.

OPCIONES

Imprime el número de versión de ldd.
Muestra toda la información, incluyendo p.e. información sobre versiones de símbolos.
Muestra las dependencias directas sin usar (a partir de glibc 2.3.4).
Lleva a cabo las relocalizaciones e informa de cualquier objeto no encontrado (solo ELF).
Lleva a cabo las relocalizaciones para los objetos de datos y las funciones, e informa de cualquier objeto o función no encontrados (solo ELF).
Información de uso.

ERRORES

ldd no funciona con bibliotecas compartidas a.out.

ldd no funciona con algunos programas a.out extremadamente antiguos que fueron construidos antes de que el soporte para ldd fuera añadido a las versiones de los compiladores. Si usa ldd con alguno de estos programas, el programa intentará ejecutarse con argc = 0 y los resultados serán impredecibles.

VÉASE TAMBIÉN

pldd(1), sprof(1), ld.so(8), ldconfig(8)

TRADUCCIÓN

La traducción al español de esta página del manual fue creada por Miguel Pérez Ibars <mpi79470@alu.um.es> y Marcos Fouces <marcos@debian.org>

Esta traducción es documentación libre; lea la GNU General Public License Version 3 o posterior con respecto a las condiciones de copyright. No existe NINGUNA RESPONSABILIDAD.

Si encuentra algún error en la traducción de esta página del manual, envíe un correo electrónico a debian-l10n-spanish@lists.debian.org.

2 Mayo 2024 Páginas de Manual de Linux (no publicadas)