/etc/ld.so.conf

Le fichier /etc/ld.so.conf sert à configurer les chemins de recherche des bibliothèques partagées.

Par défaut, le chargeur rechercher les bibliothèques partagées dans les répertoires /lib et /usr/lib. Pour ajouter un chemin de recherche, on peut ajouter une ligne dans le fichier ld.so.conf ou modifier la variable d'environnement LD_LIBRARY_PATH.

Le fichier ld.so.conf n'est pas utilisé directement par le chargeur, à la place celui-ci utilise un cache binaire avec les informations des bibliothèques. Ce cache est stocké dans le fichier /etc/ld.so.cache.

Pour que les bibliothèques des chemins de ld.so.conf soient intégrés au cache, il faut utiliser la commande ldconfig. Une erreur courante est de modifier ld.so.conf et d'oublier de lancer ldconfig.

Format du fichier

Le format du fichier est très simple: chaque ligne correspond à un chemin de recherche. Les commentaires débutent par le caractère dièse. Par exemple:

$ cat /etc/ld.so.conf
# Multiarch support
/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu

# Ikipou corp. dev
/usr/local/lib

Le fichier de configuration peut aussi contenir la directive "include" qui permet d'inclure le contenu d'un autre fichier. Ceci est par exemple exploité sur Debian (ou Ubuntu) pour inclure tout les fichiers contenus dans /etc/ld.so.conf.d/:

$ cat /etc/ld.so.conf
include /etc/ld.so.conf.d/*.conf
$ ls /etc/ld.so.conf.d
x86_64-linux-gnu

Prise en compte des modifications

Le fichier ld.so.conf n'est pas directement utilisé par le chargeur. Le chargeur de bibliothèque utilise un cache binaire contenant une liste des bibliothèques disponibles. Le cache binaire se trouve dans le fichier ld.so.cache.

Lors d'une modification du fichier ld.so.conf (ou d'un fichier de /etc/ld.so.conf.d/ si ils sont inclus), il faut utiliser ldconfig pour régénérer le cache.

La commande ldconfig s'utilise classiquement sans options, et dans ce cas elle ne retourne aucune information. La commande nécessite les droits root à cause des permissions du fichier ld.so.cache.

# ldconfig