miércoles, 7 de febrero de 2018

Concepto de Librerias.

¿Que son las librerías?

Son una colección de funciones ya existentes como las que se encargan del manejo del disco rígido, la memoria etc. 
Como muchas de ellas, ya vienen previamente instaladas en un Sistema GNU/Linux, cuando un programa nuevo es compilado (es decir cuando convertimos el código fuente en código maquina), dichas librerías no se vuelven a compilar, ya que se utilizan las que se encuentran instaladas.
Si el programa no las encuentra, va a fallar en su ejecución, requiriendo que se instale dicha librería.
Actualmente, sistemas como Debian o derivados (Ubuntu, Linux Mint o Kali Linux), asi como también los sistemas Red Hat y derivados (Fedora Linux, Centos o Scientific Linux), a la hora de instalar un programa, verifica las librerías de las cual depende, y en caso de no encontrarse, las instala junto al programa en cuestión.

En caso de que querríamos ver la libreria compartida de nslookup, lo que hacemos es ejecutar el programa ldd junto a la ruta del binario de nslookup:

[juan@juan ~]$ ldd /usr/bin/nslookup
    linux-vdso.so.1 (0x00007ffd296a2000)
    libdns.so.169 => /lib64/libdns.so.169 (0x00007f09ad0ed000)
    liblwres.so.160 => /lib64/liblwres.so.160 (0x00007f09aced9000)
    libbind9.so.160 => /lib64/libbind9.so.160 (0x00007f09accc8000)
    libisccfg.so.160 => /lib64/libisccfg.so.160 (0x00007f09aca9b000)
    libisc.so.166 => /lib64/libisc.so.166 (0x00007f09ac81b000)
    libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007f09ac5ce000)
    libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007f09ac2e7000)
    libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007f09ac0b4000)
    libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007f09abeb0000)
    libcrypto.so.1.1 => /lib64/libcrypto.so.1.1 (0x00007f09aba28000)
    libcap.so.2 => /lib64/libcap.so.2 (0x00007f09ab823000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f09ab604000)

Lo cual, nos va a mostrar las librerías dinámicas que utiliza nslookup, y donde se encuentran. (Corte la salida del comando, ya que son muchas mas)

Librerías de GNU/Linux

Comando ldconfig 

La sintaxis del comando es la siguiente:

ldconfig [options] lib_dirs
Con este comando, vamos a actualizar el cache con las librerías que le pasemos por parámetro en los directorios correspondientes (/usr/lib, /lib y los directorios mencionados /etc/ld.so.conf)

Las Opciones son las siguientes:
 
-p Muestra el contenido de la caché en lugar de recrearlo.
-v Es el modo verbose, muestra lo que sucede mientras se ejecuta.

por ejemplo, la opción -p:

[juan@juan ~]$ ldconfig -p
1811 libs found in cache `/etc/ld.so.cache'
    p11-kit-trust.so (libc6,x86-64) => /lib64/p11-kit-trust.so
    libzvbi.so.0 (libc6,x86-64) => /lib64/libzvbi.so.0
    libzvbi-chains.so.0 (libc6,x86-64) => /lib64/libzvbi-chains.so.0
    libzstd.so.1 (libc6,x86-64) => /lib64/libzstd.so.1
    libzstd.so (libc6,x86-64) => /lib64/libzstd.so
    libzmq.so.5 (libc6,x86-64) => /lib64/libzmq.so.5
    libzmf-0.0.so.0 (libc6,x86-64) => /lib64/libzmf-0.0.so.0
    libzhuyin.so.13 (libc6,x86-64) => /lib64/libzhuyin.so.13

Si buscamos una libreria en particular (por ejemplo las utilizadas por GTK)
 [juan@juan ~]$ ldconfig -p | grep gtk
    libwx_gtk2u_xrc-2.8.so.0 (libc6,x86-64) => /lib64/libwx_gtk2u_xrc-2.8.so.0
    libwx_gtk2u_svg-2.8.so.0 (libc6,x86-64) => /lib64/libwx_gtk2u_svg-2.8.so.0
    libwx_gtk2u_stc-2.8.so.0 (libc6,x86-64) => /lib64/libwx_gtk2u_stc-2.8.so.0
    libwx_gtk2u_richtext-2.8.so.0 (libc6,x86-64) => /lib64/libwx_gtk2u_richtext-2.8.so.0


Variable LD_LIBRARY_PATH

Esta variable la vamos a utilizar para definir temporalmente una ubicación diferente de las librerías. Por Ejemplo
# LD_LIBRARY_PATH=/usr/local/dev/lib
# export LD_LIBRARY_PATH

No hay comentarios:

Publicar un comentario

Bienvenidos

Primera Jornada de Ciberseguridad Ciudadana

Evento Realizado por el BA-CSIRT El BA-CSIRT , el dia Jueves 12 de Abril de 2018, va a realizar un evento de Ciberseguridad Ciudadana. ...