domingo, 28 de enero de 2024

Librerias linux

Posted by q3it on domingo, enero 28, 2024 in


Cuando nosotros ejecutamos una aplicación esta aplicación puede tener dependencia a ciertas librerías, cuando utilizábamos apt-get o yum esto instalaba además de la aplicación ciertas dependencias que podían ser librerías. Una librería por ejemplo, podría ser un fichero para que la aplicación se conecte a internet, y otra librería podría mostrarlo en pantalla, es decir, nosotros nos conectamos a internet para obtener una página web y luego nos la muestra en pantalla.
 
Esta aplicación podría no utilizar las librerías, sino que dentro de la aplicación incluir tanto las funciones para conectarse a internet como la interfaz gráfica para mostrarla en pantalla, pero lo que haría esto es que la aplicación sería mucho más grande, es decir, en vez de ocupar un megabyte cada librería ocuparía tres megabyte.

Las librerías son buenas porque otra aplicación que también va hacer lo mismo, conectarse a internet y mostrar algo en pantalla, va a utilizar las mismas librerías que utilizan otras aplicaciones, en vez de que cada una por separado tengan sus propias librerías dentro de sí mismas. Entonces la idea es que van utilizar librerías compartidas y estas van a tener terminación en .so "shared library".

¿Y dónde están los directorios de estas librerías? En el fichero /etc/ld.so.conf que normalmente tiene una directiva para incluir todos los ficheros que estén en /etc/ld.so.conf.d/.

 
Como vemos el fichero de configuración tiene la directiva para incluir todos los ficheros que esté en este directorio y que tengan terminación .conf
 
Si entramos a este directorio veremos que hay tres ficheros.
 
 
Uno de ellos es donde están por defecto las librerías del sistema denominado libc y en otro de los ficheros es donde están las librerías para diferentes arquitecturas, si nosotros tenemos aplicaciones que solo corren en arquitecturas de 32 bits las vamos a poder ejecutar.
 
 
Si nosotros encontramos este problema al ejecutar un programa que nos dice "error cargando las librerías compartidas y luego el nombre de la librería" significa que esta librería no se ha encontrado en ninguno de los directorios que nosotros hemos especificado.
 
Para no hacer muy larga está publicación, en el siguiente post enseñaré como solucionar este problema y cómo actualizar la base de datos de las librerías.