Como saber que librerias utiliza un programa o proceso en Linux

sábado, agosto 09, 2014 Publicado por: Oscar Meza


En ocasiones necesitamos saber que librerias utiliza un programa instalado en Linux o talvez de un proceso que se encuentra en ejecución, para lo cual podemos ocupar los siguientes comandos.

ldd /carpeta/comando

Por ejemplo.

# ldd /usr/bin/ssh

Retornará un resultado como el siguiente.

        linux-gate.so.1 (0xffffe000)
        libresolv.so.2 => /lib/libresolv.so.2 (0xb7601000)
        libcrypto.so.1 => /lib/libcrypto.so.1 (0xb7444000)
        libdl.so.2 => /lib/libdl.so.2 (0xb743f000)
        libutil.so.1 => /lib/libutil.so.1 (0xb743b000)
        libz.so.1 => /lib/libz.so.1 (0xb7424000)
        libnsl.so.1 => /lib/libnsl.so.1 (0xb7409000)
        libcrypt.so.1 => /lib/libcrypt.so.1 (0xb73d6000)
        libc.so.6 => /lib/libc.so.6 (0xb724b000)
        /lib/ld-linux.so.2 (0xb76ff000)


Otra forma de obtenerlo es con el comando siguiente.

objdump -p /carpeta/comando | greep NEEDED

Por ejemplo

objdump -p /usr/bin/ssh | grep NEEDED

Lo que retorna el siguiente resultado.

  NEEDED               libresolv.so.2
  NEEDED               libcrypto.so.1
  NEEDED               libdl.so.2
  NEEDED               libutil.so.1
  NEEDED               libz.so.1
  NEEDED               libnsl.so.1
  NEEDED               libcrypt.so.1
  NEEDED               libc.so.6

Ahora si queremos saber que librerías ejecuta un proceso que se esta ejecutando, utilizamos el siguiente comando.

pldd PID

Por ejemplo.

# pldd 823

Retorna el siguiente resultado.

823:    /usr/bin/wbar
linux-gate.so.1
/usr/local/lib/libImlib2.so.1
/usr/lib/libX11.so.6
/usr/lib/libstdc++.so.6
/lib/libm.so.6
/usr/lib/libgcc_s.so.1
/lib/libc.so.6
/usr/lib/libXext.so.6
/usr/lib/libxcb.so.1
/usr/lib/libXau.so.6
/usr/lib/libXdmcp.so.6
/usr/lib/libfreetype.so.6
/lib/libbz2.so.1
/usr/lib/libpng14.so.14
/lib/libz.so.1
/lib/libdl.so.2
/lib/ld-linux.so.2
/usr/local/lib/imlib2/loaders/zlib.so
/usr/local/lib/imlib2/loaders/xpm.so
/usr/local/lib/imlib2/loaders/tiff.so
/usr/lib/libtiff.so.3
/usr/lib/libjpeg.so.8
/usr/local/lib/imlib2/loaders/tga.so
/usr/local/lib/imlib2/loaders/pnm.so
/usr/local/lib/imlib2/loaders/png.so
/usr/local/lib/imlib2/loaders/lbm.so
/usr/local/lib/imlib2/loaders/jpeg.so
/usr/local/lib/imlib2/loaders/id3.so
/usr/lib/libid3tag.so.0
/usr/local/lib/imlib2/loaders/gif.so
/usr/lib/libgif.so.4
/usr/local/lib/imlib2/loaders/bz2.so
/usr/local/lib/imlib2/loaders/bmp.so
/usr/local/lib/imlib2/loaders/argb.so

También el programa "pmap" puede ser usado para el mismo fin como muestro a continuación.

# pmap 823

823:   wbar
08048000     64K r-x--  /usr/bin/wbar
08058000      4K rw---  /usr/bin/wbar
08fd3000   2920K rw---    [ anon ]
b6fc3000    360K r----  /usr/share/fonts/TTF/DejaVuSerif.ttf
b701d000    280K rw---    [ anon ]
b70a9000     56K r-x--  /usr/lib/libid3tag.so.0.3.0
b70b7000      8K rw---  /usr/lib/libid3tag.so.0.3.0
b70b9000    220K r-x--  /usr/lib/libjpeg.so.8.0.1
b70f0000      4K rw---  /usr/lib/libjpeg.so.8.0.1
b70f1000    388K r-x--  /usr/lib/libtiff.so.3.9.7
b7152000      8K rw---  /usr/lib/libtiff.so.3.9.7
b7180000      4K r-x--  /usr/local/lib/imlib2/loaders/argb.so
b7181000      4K rw---  /usr/local/lib/imlib2/loaders/argb.so
b7182000     12K r-x--  /usr/local/lib/imlib2/loaders/bmp.so
b7185000      4K rw---  /usr/local/lib/imlib2/loaders/bmp.so
b7186000      4K r-x--  /usr/local/lib/imlib2/loaders/bz2.so
b7187000      4K rw---  /usr/local/lib/imlib2/loaders/bz2.so
b7188000    220K r----  /usr/lib/locale/en_US/LC_CTYPE
b71bf000     12K rw---    [ anon ]
b71c2000     12K r-x--  /lib/libdl-2.17.so
b71c5000      4K r----  /lib/libdl-2.17.so
b71c6000      4K rw---  /lib/libdl-2.17.so
b71c7000     84K r-x--  /lib/libz.so.1.2.8
b71dc000      4K rw---  /lib/libz.so.1.2.8
b71dd000    168K r-x--  /usr/lib/libpng14.so.14.12.0
b7207000      4K rw---  /usr/lib/libpng14.so.14.12.0
b7208000     64K r-x--  /lib/libbz2.so.1.0.6
b7218000      4K rw---  /lib/libbz2.so.1.0.6
b7219000    548K r-x--  /usr/lib/libfreetype.so.6.10.2
b72a2000     16K rw---  /usr/lib/libfreetype.so.6.10.2
b72a6000      4K rw---    [ anon ]
b72a7000     20K r-x--  /usr/lib/libXdmcp.so.6.0.0
b72ac000      4K rw---  /usr/lib/libXdmcp.so.6.0.0
b72ad000      8K r-x--  /usr/lib/libXau.so.6.0.0
b72af000      4K rw---  /usr/lib/libXau.so.6.0.0
b72b0000    124K r-x--  /usr/lib/libxcb.so.1.1.0
b72cf000      4K rw---  /usr/lib/libxcb.so.1.1.0
b72d0000     68K r-x--  /usr/lib/libXext.so.6.4.0
b72e1000      4K rw---  /usr/lib/libXext.so.6.4.0
b72e2000   1556K r-x--  /lib/libc-2.17.so
b7467000      8K r----  /lib/libc-2.17.so
b7469000      4K rw---  /lib/libc-2.17.so
b746a000     12K rw---    [ anon ]
b746d000    108K r-x--  /usr/lib/libgcc_s.so.1
b7488000      4K rw---  /usr/lib/libgcc_s.so.1
b7489000      4K rw---    [ anon ]
b748a000    256K r-x--  /lib/libm-2.17.so
b74ca000      4K r----  /lib/libm-2.17.so
b74cb000      4K rw---  /lib/libm-2.17.so
b74cc000    876K r-x--  /usr/lib/libstdc++.so.6.0.18
b75a7000      4K -----  /usr/lib/libstdc++.so.6.0.18
b75a8000     16K r----  /usr/lib/libstdc++.so.6.0.18
b75ac000      4K rw---  /usr/lib/libstdc++.so.6.0.18
b75ad000     28K rw---    [ anon ]
b75b4000   1228K r-x--  /usr/lib/libX11.so.6.3.0
b76e7000     16K rw---  /usr/lib/libX11.so.6.3.0
b76eb000    384K r-x--  /usr/local/lib/libImlib2.so.1.4.6
b774b000      4K rw---  /usr/local/lib/libImlib2.so.1.4.6
b774c000     80K rw---    [ anon ]
b7760000     28K r-x--  /usr/lib/libgif.so.4.1.6
b7767000      4K rw---  /usr/lib/libgif.so.4.1.6
b7768000      8K r-x--  /usr/local/lib/imlib2/loaders/gif.so
b776a000      4K rw---  /usr/local/lib/imlib2/loaders/gif.so
b776b000     12K r-x--  /usr/local/lib/imlib2/loaders/id3.so
b776e000      4K rw---  /usr/local/lib/imlib2/loaders/id3.so
b776f000      8K r-x--  /usr/local/lib/imlib2/loaders/jpeg.so
b7771000      4K rw---  /usr/local/lib/imlib2/loaders/jpeg.so
b7772000     12K r-x--  /usr/local/lib/imlib2/loaders/lbm.so
b7775000      4K rw---  /usr/local/lib/imlib2/loaders/lbm.so
b7776000     12K r-x--  /usr/local/lib/imlib2/loaders/png.so
b7779000      4K rw---  /usr/local/lib/imlib2/loaders/png.so
b777a000      8K r-x--  /usr/local/lib/imlib2/loaders/pnm.so
b777c000      4K rw---  /usr/local/lib/imlib2/loaders/pnm.so
b777d000      8K r-x--  /usr/local/lib/imlib2/loaders/tga.so
b777f000      4K rw---  /usr/local/lib/imlib2/loaders/tga.so
b7780000     12K r-x--  /usr/local/lib/imlib2/loaders/tiff.so
b7783000      4K rw---  /usr/local/lib/imlib2/loaders/tiff.so
b7784000     12K r-x--  /usr/local/lib/imlib2/loaders/xpm.so
b7787000      4K rw---  /usr/local/lib/imlib2/loaders/xpm.so
b7788000      4K r-x--  /usr/local/lib/imlib2/loaders/zlib.so
b7789000      4K rw---  /usr/local/lib/imlib2/loaders/zlib.so
b778a000      4K r----  /usr/lib/locale/en_US/LC_NUMERIC
b778b000      4K r----  /usr/lib/locale/en_US/LC_TIME
b778c000      4K r----  /usr/lib/locale/en_US/LC_MONETARY
b778d000      4K r----  /usr/lib/locale/en_US/LC_MESSAGES/SYS_LC_MESSAGES
b778e000      4K r----  /usr/lib/locale/en_US/LC_PAPER
b778f000      4K r----  /usr/lib/locale/en_US/LC_NAME
b7790000      4K r----  /usr/lib/locale/en_US/LC_ADDRESS
b7791000      4K r----  /usr/lib/locale/en_US/LC_TELEPHONE
b7792000      4K r----  /usr/lib/locale/en_US/LC_MEASUREMENT
b7793000      4K r----  /usr/lib/locale/en_US/LC_IDENTIFICATION
b7794000      4K rw---    [ anon ]
b7795000    132K r-x--  /lib/ld-2.17.so
b77b6000      4K r----  /lib/ld-2.17.so
b77b7000      4K rw---  /lib/ld-2.17.so
bfa1e000    132K rw---    [ stack ]
ffffe000      4K r-x--    [ anon ]
 total    10816K



0 comentarios: