Skip to main content

Encuentre las bibliotecas compartidas de un programa con el comando "ldd"

TROLLEANDO con COMANDOS de ADMIN en ROBLOX !! (Junio 2026)

TROLLEANDO con COMANDOS de ADMIN en ROBLOX !! (Junio 2026)
Anonim

Utilizar el ldd comando para mostrar las bibliotecas compartidas requeridas por cualquier programa dado - útil para trabajar cuando falta una dependencia. El comando también enumera funciones y objetos faltantes.

Sintaxis del comando ldd

Observe la sintaxis correcta del comando ldd para evitar errores:

ldd OPCION … ARCHIVO …

Use uno o más de los interruptores de comando ldd disponibles, insertados en el OPCIÓN lugar en el comando anterior:

--ayudar | imprimir esta ayuda y salir --versión | Imprimir la información de la versión y salir. -d, --data-relocs | proceso de reubicaciones de datos -r, - disfunciones de funcion | Procesamiento de datos y reubicaciones de funciones. -u, --unused | imprimir dependencias directas no utilizadas -v, --verbose | imprimir toda la información

Cómo usar el comando ldd

Ejecute el siguiente comando para obtener más información sobre un programa:

$ ldd -v / ruta / a / programa / ejecutable

La salida muestra información de la versión, así como las rutas y direcciones a las bibliotecas compartidas, como esta:

$ ldd libshared.so linux-vdso.so.1 => (0x00007fff26ac8000) libc.so.6 => /lib/libc.so.6 0x00007ff1df55a000) /lib64/ld-linux-x86-64.so.2 (0x00007ff1dfafe000)

Si el archivo SO no existe en absoluto, puede encontrar las bibliotecas que faltan con el siguiente comando:

$ ldd -d ruta / a / programa

La salida es similar a la siguiente:

linux-vdso.so.1 (0x00007ffc2936b000) /home/gary/demo/garylib.so => ​​not foundlibc.so.6 => usr / lib / libc.so.6 (0x00007fd0c6259000) /lib64/ld-linux-x86-64.so.2 (0x00007fd0c65fd000)

Nunca ejecute el comando ldd contra un programa que no sea de confianza porque el ldd podría ejecutarlo. En su lugar, use una alternativa más segura que muestre solo las dependencias directas y no todo el árbol de dependencias:

$ objdump -p / ruta / a / programa | Grep NECESITA

Cómo encontrar el camino a una aplicación

Debe proporcionar la ruta completa a una aplicación si desea encontrar sus dependencias con ldd, lo que puede hacer de varias maneras.

Por ejemplo, así es como encontrarías la ruta a Firefox:

$ encontrar / nombre Firefox

El problema con el comando de búsqueda, sin embargo, es que no solo listará el ejecutable, sino también en todos los lugares donde se encuentra Firefox, de esta forma:

  • /etc/skel/.mozilla/firefox
  • / home // cache / mozilla / firefox
  • /home//mozilla/firefox
  • / usr / bin / Firefox
  • / usr / lib / Firefox
  • / usr / lib / Firefox / Firefox

Este enfoque es un poco excesivo y es posible que necesite usar el comando sudo para elevar sus privilegios, de lo contrario, es probable que obtenga muchos errores de permiso denegado.

En cambio, es mucho más fácil usar el comando whereis para encontrar la ruta de una aplicación:

$ whereis firefox

Esta vez la salida podría verse así:

/ usr / bin / firefox

/ etc / firefox

/ usr / lib / firefox

Todo lo que tienes que hacer ahora para encontrar las bibliotecas compartidas para Firefox es escribir el siguiente comando:

$ ldd / usr / bin / firefox

La salida del comando será algo como esto:

linux-vdso.so.1 (0x00007ffff8364000)libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007feb9917a000)libdl.so.2 => /usr/lib/libdl.so.2 (0x00007feb98f76000)libstdc ++. so.6 => /usr/lib/libstdc++.so.6 (0x00007feb98bf4000)libm.so.6 => /usr/lib/libm.so.6 (0x00007feb988f6000)libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007feb986e0000)libc.so.6 => /usr/lib/libc.so.6 (0x00007feb9833c000)/lib64/ld-linux-x86-64.so.2 (0x00007feb99397000)

Linux-vdso.so.1 es el nombre de la biblioteca y el número hexadecimal es la dirección donde se cargará la biblioteca en la memoria.

Notarás en muchas de las otras líneas que el símbolo => va seguido de una ruta. Este es el camino al binario físico; el número hexadecimal es la dirección donde se cargará la biblioteca.