Il comune di una città allo scopo di evitare di far acquistare ai cittadini un numero enorme di libri può mettere a loro disposizione un certo numero di testi in una biblioteca pubblica e concederli in prestito a chi ne faccia richiesta. Allo stesso modo Linux, per evitare che numerosi programmi con le stesse funzioni abbiano le stesse sezioni di codice replicate in memoria centrale, utilizza delle librerie23 (libraries) di funzioni caricate una volta per tutte dal kernel; tutti i programmi che vogliono usarle ne richiedono semplicemente l'uso.
In effetti la traduzione di library è biblioteca, ma qualche ignorante l'ha tradotto libreria ed ormai così è entrato nell'uso comune.
Bisogna però che il meccanismo di caricamento delle librerie condivise del sistema operativo le localizzi. La gestione delle librerie condivise è comandata dal file /etc/ld.so.conf che è un semplice file di testo contenente l'indirizzamento completo delle librerie.
Se si rileva che Linux non riesce a trovare una libreria, provare a cercarla con il comando:
In realtà ci sarebbe anche la possibilità che la libreria esiste ma non ha esattamente il nome richiesto25; è sconsigliabile creare un collegamento simbolico col nome richiesto perché si rischia di provocare malfunzionamenti dovuti a differenze nelle versioni delle librerie.
Può essere utile anche conoscere il comando per elencare le librerie da cui dipende un determinato programma:
libpam.so.0 => /lib/libpam.so.0 (0x40035000)
libdl.so.2 => /lib/libdl.so.2 (0x4003d000)
libresolv.so.2 => /lib/libresolv.so.2 (0x40041000)
libcrypto.so.0.9.7=>/usr/lib/i686/cmov/libcrypto.so.0.9.7
libutil.so.1 => /lib/libutil.so.1 (0x40152000)
libz.so.1 => /usr/lib/libz.so.1 (0x40155000)
libnsl.so.1 => /lib/libnsl.so.1 (0x40167000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0x4017c000)
libpthread.so.0 => /lib/libpthread.so.0 (0x401aa000)
libc.so.6 => /lib/libc.so.6 (0x401fb000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
Mauro Darida 2006-07-25