Cómo comprobar si una biblioteca está instalada en Linux

LinuxLinuxBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderás cómo comprobar si una biblioteca específica está instalada en tu sistema Linux. Explorarás diferentes métodos para lograr esto, comenzando por enumerar las bibliotecas compartidas disponibles utilizando ldconfig -p para entender qué bibliotecas están presentes y sus ubicaciones.

A continuación, utilizarás el comando dpkg -l para identificar el paquete asociado a una biblioteca en particular, lo que te dará una idea de cómo se gestionan las bibliotecas dentro del gestor de paquetes del sistema. Finalmente, aprenderás cómo inspeccionar directamente directorios de bibliotecas comunes como /usr/lib para verificar manualmente la presencia de archivos de biblioteca.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux(("Linux")) -.-> linux/InputandOutputRedirectionGroup(["Input and Output Redirection"]) linux(("Linux")) -.-> linux/PackagesandSoftwaresGroup(["Packages and Softwares"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/less("File Paging") linux/FileandDirectoryManagementGroup -.-> linux/cd("Directory Changing") linux/TextProcessingGroup -.-> linux/grep("Pattern Searching") linux/InputandOutputRedirectionGroup -.-> linux/pipeline("Data Piping") linux/PackagesandSoftwaresGroup -.-> linux/software("Linux Software") subgraph Lab Skills linux/ls -.-> lab-558728{{"Cómo comprobar si una biblioteca está instalada en Linux"}} linux/less -.-> lab-558728{{"Cómo comprobar si una biblioteca está instalada en Linux"}} linux/cd -.-> lab-558728{{"Cómo comprobar si una biblioteca está instalada en Linux"}} linux/grep -.-> lab-558728{{"Cómo comprobar si una biblioteca está instalada en Linux"}} linux/pipeline -.-> lab-558728{{"Cómo comprobar si una biblioteca está instalada en Linux"}} linux/software -.-> lab-558728{{"Cómo comprobar si una biblioteca está instalada en Linux"}} end

Listar bibliotecas con ldconfig -p

En este paso, aprenderás cómo listar las bibliotecas compartidas disponibles en tu sistema Linux utilizando el comando ldconfig.

Las bibliotecas compartidas son colecciones de código que múltiples programas pueden utilizar. Esto ahorra espacio en disco y memoria porque el código no necesita duplicarse en cada programa.

El comando ldconfig se utiliza principalmente para configurar las vinculaciones en tiempo de ejecución del enlazador dinámico. Cuando se utiliza con la opción -p, imprime la lista de directorios y bibliotecas candidatas que están en caché.

Abre tu terminal si no está abierta. Puedes hacer esto haciendo clic en el icono de Xfce Terminal en el lado izquierdo de tu escritorio.

Ahora, escribe el siguiente comando y presiona Enter:

ldconfig -p

Este comando mostrará una larga lista de bibliotecas compartidas encontradas en tu sistema. La salida se verá algo así:

...
        libzstd.so.1 (libc6,x86-64) => /lib/x86_64-linux-gnu/libzstd.so.1
        libz.so.1 (libc6,x86-64) => /lib/x86_64-linux-gnu/libz.so.1
        libxml2.so.2 (libc6,x86-64) => /lib/x86_64-linux-gnu/libxml2.so.2
        libxml2.so (libc6,x86-64) => /lib/x86_64-linux-gnu/libxml2.so
        libxslt.so.1 (libc6,x86-64) => /lib/x86_64-linux-gnu/libxslt.so.1
...

La salida muestra el nombre de la biblioteca, la arquitectura para la que está compilada (como x86-64) y la ruta al archivo de la biblioteca en el sistema.

Debido a que la salida es muy larga, es posible que desees canalizarla a un paginador como less para verla pantalla por pantalla. Para hacer esto, utiliza el símbolo de tubería |:

ldconfig -p | less

Presiona la barra espaciadora para desplazarte hacia abajo una página, b para desplazarte hacia arriba y q para salir de less.

Este comando es útil para ver qué bibliotecas están disponibles y dónde se encuentran.

Haz clic en Continuar para pasar al siguiente paso.

Verificar el paquete de la biblioteca con dpkg -l

En el paso anterior, listaste las bibliotecas compartidas. Ahora, aprendamos cómo averiguar a qué paquete pertenece una biblioteca específica utilizando el comando dpkg.

dpkg es el gestor de paquetes para sistemas basados en Debian, como Ubuntu. Se utiliza para instalar, eliminar y gestionar paquetes .deb. La opción -l lista los paquetes instalados.

Para encontrar un paquete específico, podemos combinar dpkg -l con grep para filtrar la salida. Busquemos paquetes relacionados con la biblioteca xml2 que vimos en la salida de ldconfig -p.

Escribe el siguiente comando en tu terminal y presiona Enter:

dpkg -l | grep xml2

Este comando lista todos los paquetes instalados (dpkg -l) y luego filtra esa lista para mostrar solo las líneas que contengan "xml2" (grep xml2).

Deberías ver una salida similar a esta:

ii  libxml2:amd64                      <version>                     amd64        GNOME XML library
ii  libxml2-dev:amd66                  <version>                     amd64        Development files for the GNOME XML library
...

La salida proporciona información sobre el paquete:

  • Los dos primeros caracteres (ii) indican el estado del paquete (instalado).
  • El nombre del paquete (por ejemplo, libxml2:amd64).
  • El número de versión.
  • La arquitectura (por ejemplo, amd64).
  • Una breve descripción del paquete.

Esta es una forma poderosa de identificar qué paquete de software proporciona un archivo de biblioteca en particular. Esto es muy útil para solucionar problemas o entender las dependencias.

Haz clic en Continuar para continuar.

Inspeccionar archivos de bibliotecas en /usr/lib

En este último paso, exploremos el directorio donde se almacenan muchas bibliotecas compartidas: /usr/lib.

El directorio /usr en Linux contiene programas y datos de nivel de usuario. El subdirectorio /usr/lib en particular almacena bibliotecas compartidas que no son esenciales para el arranque del sistema, pero son necesarias para las aplicaciones.

Primero, cambiemos nuestro directorio actual a /usr/lib. Usamos el comando cd para esto.

Escribe el siguiente comando y presiona Enter:

cd /usr/lib

Ahora estás dentro del directorio /usr/lib. Para ver el contenido de este directorio, usa el comando ls. Debido a que este directorio contiene muchos archivos, nuevamente canalizaremos la salida a less.

Escribe el siguiente comando y presiona Enter:

ls | less

Verás una larga lista de archivos y directorios. Muchos de los archivos que terminan con .so son bibliotecas compartidas. También es posible que veas directorios como x86_64-linux-gnu, que contienen bibliotecas específicas de la arquitectura.

Presiona la barra espaciadora para desplazarte hacia abajo y q para salir de less.

Busquemos el archivo de la biblioteca libxml2 que discutimos en los pasos anteriores. Podemos usar ls con grep para encontrarlo dentro del directorio actual (/usr/lib).

Escribe el siguiente comando y presiona Enter:

ls | grep libxml2

Deberías ver una salida similar a esta, que muestra los archivos de la biblioteca libxml2 y los enlaces simbólicos:

libxml2.so
libxml2.so.2
libxml2.so.2.<version>

Los archivos .so son las bibliotecas compartidas reales, y los archivos sin número de versión (como libxml2.so) a menudo son enlaces simbólicos que apuntan al archivo de la biblioteca real con el número de versión.

Puedes usar el comando readlink para ver a dónde apunta un enlace simbólico. Por ejemplo:

readlink libxml2.so

Esto te mostrará el archivo real al que libxml2.so está enlazado, que incluye el número de versión completo.

libxml2.so.2

Este paso te mostró cómo navegar a un directorio de bibliotecas común e inspeccionar su contenido utilizando cd, ls y grep. Entender dónde se almacenan las bibliotecas es crucial para la administración y el desarrollo del sistema.

Haz clic en Continuar para completar el laboratorio.

Resumen

En este laboratorio, aprendiste cómo verificar si una biblioteca está instalada en Linux utilizando varios métodos. Comenzaste listando las bibliotecas compartidas disponibles y sus ubicaciones utilizando el comando ldconfig -p, comprendiendo su papel en la gestión de las vinculaciones del enlazador dinámico.

A continuación, exploraste cómo identificar el paquete al que pertenece una biblioteca específica utilizando el comando dpkg -l, que es una herramienta clave para la gestión de paquetes Debian. Finalmente, aprendiste a inspeccionar directamente directorios de bibliotecas comunes como /usr/lib para verificar manualmente la presencia de archivos de bibliotecas. Estos pasos proporcionan un enfoque integral para determinar el estado de instalación de las bibliotecas en un sistema Linux.