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

--version
    Imprime el número de versión de ldd.

-v, --verbose
    Muestra toda la información, incluyendo p.e. información sobre versiones de símbolos.

-u, --unused
    Muestra las dependencias directas sin usar (a partir de glibc 2.3.4).

-d, --data-relocs
    Lleva a cabo las relocalizaciones e informa de cualquier objeto no encontrado (solo ELF).

-r, --function-relocs
    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).

--help
    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 (https://www.gnu.org/licenses/gpl-3.0.html) 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.