GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo usar el comando ldconfig en Linux

El comando ldconfig se usa para informar al sistema sobre nuevas ubicaciones de bibliotecas compartidas. La información de usos proporcionada por el /etc/ld.so.conf archivo de configuración.

El comando ldconfig crea una base de datos de caché de todas las bibliotecas según el archivo de configuración. Este caché normalmente se almacena en el /etc/ld.so.cache expediente.

Esta es la sintaxis del comando ldconfig:

# ldconfig [option]

La siguiente tabla describe opciones útiles para el comando ldconfig:

Opción Descripción
-v Detallado; imprimir información adicional.
-n Utilice una opción de línea de comandos para especificar la ubicación de nuevas bibliotecas compartidas. Ejemplo:ldconfig -n /algún/directorio.
-f Especifique un archivo de configuración diferente al predeterminado (/etc/ld.so.conf ).
-p Utilice para imprimir una lista de bibliotecas actuales almacenadas en el archivo de caché.

Archivo de configuración /etc/ld.so.conf

El archivo de configuración principal para bibliotecas compartidas es el archivo /etc/ld.so.conf; sin embargo, normalmente solo hay una línea en este archivo:

# cat /etc/ld.so.conf 
include ld.so.conf.d/*.conf

La línea de inclusión en este archivo le dice al sistema que también use todos los archivos de configuración en el directorio especificado. En el caso del ejemplo anterior, serían todos los archivos que terminan en “.conf” en el directorio /etc/ld.so.conf.d.

El archivo de configuración en sí es simple. Solo contiene un directorio en el que se almacenan las bibliotecas compartidas:

# more /etc/ld.so.conf.d/libiscsi-x86_64.conf /usr/lib64/iscsi
# ls /usr/lib64/iscsi
libiscsi.so.2 libiscsi.so.2.0.10900

Lista de bibliotecas almacenadas en caché

Para enumerar las bibliotecas almacenadas en caché, puede usar la opción -p del comando ldconfig como se muestra a continuación:

# ldconfig -p | more
784 libs found in cache `/etc/ld.so.cache'
        p11-kit-trust.so (libc6,x86-64) => /lib64/p11-kit-trust.so
        libz.so.1 (libc6,x86-64) => /lib64/libz.so.1
        libyaml-0.so.2 (libc6,x86-64) => /lib64/libyaml-0.so.2
        libyajl.so.2 (libc6,x86-64) => /lib64/libyajl.so.2
        libxtables.so.10 (libc6,x86-64) => /lib64/libxtables.so.10
        libxslt.so.1 (libc6,x86-64) => /lib64/libxslt.so.1
        libxshmfence.so.1 (libc6,x86-64) => /lib64/libxshmfence.so.1
        libxml2.so.2 (libc6,x86-64) => /lib64/libxml2.so.2
        libxmlrpc_util.so.3 (libc6,x86-64) => /lib64/libxmlrpc_util.so.3
        libxmlrpc_server_cgi.so.3 (libc6,x86-64) => /lib64/libxmlrpc_server_cgi.so.3
        libxmlrpc_server_abyss.so.3 (libc6,x86-64) => /lib64/libxmlrpc_server_abyss.so.3
....

Agregar nuevas bibliotecas usando ldconfig

Para agregar nuevas bibliotecas compartidas al sistema, primero debe descargar las bibliotecas al sistema y colocarlas en un directorio. Después de agregar nuevas bibliotecas, debe crear un archivo de configuración en el directorio /etc/ld.so.conf.d y luego ejecutar el comando ldconfig. Todas estas tareas deben realizarse como usuario root:

# ls /usr/lib64/test
mylib.so.1
# cat /etc/ld.so.conf.d/libtest.conf /usr/lib64/test
# ldconfig

Si el comando ldconfig se ejecuta con éxito, no habrá salida.

Variable LD_LIBRARY_PATH

Los usuarios regulares no pueden ejecutar con éxito el comando ldconfig; sin embargo, si un usuario normal quiere usar una biblioteca compartida personalizada, ese usuario puede descargar este archivo en su directorio de inicio y usar LD_LIBRARY_PATH para indicar la ubicación de los archivos de la biblioteca personalizada, así:

$ ls /home/testuser/lib
mylib.so.1
$ LD_LIBRARY_PATH=/home/testuser/lib

Si se ejecuta de manera útil, el último comando no debería producir ningún resultado. Para que esto sea un cambio permanente, coloque el LD_LIBRARY_PATH=/home/testuser/lib Comando en tu ~/.bashrc archivo.

$ vi ~/.bashrc
LD_LIBRARY_PATH=/home/testuser/lib
export LD_LIBRARY_PATH

Comando ldd

Puede ver qué bibliotecas compartidas usa un comando específico usando el comando ldd. Esta es la sintaxis del comando ldd:

# ldd [options] FILE

Por ejemplo:

# ldd /bin/ls
        linux-vdso.so.1 =>  (0x00007ffee2b3f000)
        libselinux.so.1 => /lib64/libselinux.so.1 (0x00007ff5a6c22000)
        libcap.so.2 => /lib64/libcap.so.2 (0x00007ff5a6a1d000)
        libacl.so.1 => /lib64/libacl.so.1 (0x00007ff5a6814000)
        libc.so.6 => /lib64/libc.so.6 (0x00007ff5a6447000)
        libpcre.so.1 => /lib64/libpcre.so.1 (0x00007ff5a61e5000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007ff5a5fe1000)
        /lib64/ld-linux-x86-64.so.2 (0x00007ff5a6e49000)
        libattr.so.1 => /lib64/libattr.so.1 (0x00007ff5a5ddc000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007ff5a5bc0000)

El propósito de usar el comando ldd es solucionar problemas con el código que está escribiendo. Este comando le dice no solo a qué bibliotecas se está llamando, sino específicamente desde qué directorio se está llamando a cada biblioteca. Esto puede ser extremadamente útil cuando una biblioteca no se comporta como se esperaría.

La siguiente tabla describe opciones útiles para el comando ldd:

Opción Descripción
-v Detallado; imprimir información adicional.
-u Muestra las dependencias directas no utilizadas.


Cent OS
  1. Cómo usar el comando grep de Linux

  2. Cómo usar el comando de historial en Linux

  3. Cómo usar el comando Su en Linux

  4. Cómo usar el comando de pantalla de Linux

  5. Cómo usar el comando ipset en Linux

Cómo usar el comando sysctl en Linux

Cómo usar el comando de apagado de Linux

Cómo usar grep en Linux

Cómo usar el comando Mkdir en Linux

Cómo usar el comando de trabajos en Linux

Cómo usar el comando de pantalla en Linux