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 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 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: 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. Cómo usar el comando ldd
Cómo encontrar el camino a una aplicación




