Revista Informática

Cómo saber que librerias utiliza un programa o proceso en Linux

Publicado el 09 agosto 2014 por Oscar Oscar Meza @vidagnu

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


Volver a la Portada de Logo Paperblog