ldconfig
a deux options intéressantes:
-f conf
Use conf instead of /etc/ld.so.conf.
-C cache
Use cache instead of /etc/ld.so.cache.
J'ai essayé de copier /etc/ld.so.conf
dans mon propre répertoire personnel et l'ai modifié pour inclure des chemins vers mes bibliothèques locales, par exemple, /home/syockit/local/usr/lib
etc.
ldconfig -f /home/syockit/ld.so.conf -C /home/syockit/ld.so.cache
et par la suite, pour confirmer que les bibliothèques sont mises en cache, j'ai couru
ldconfig -f /home/syockit/ld.so.conf -C /home/syockit/ld.so.cache -p | less
et il inclut toutes mes bibliothèques en plus des bibliothèques système.
Maintenant, je veux que l'éditeur de liens par défaut utilise ces deux. Mais dans man ld.so
, je ne vois aucune mention de pouvoir utiliser custom .conf
ou .cache
. Alors, quel est l'intérêt des deux options ci-dessus ldconfig
?
la source
/etc/ld.so.conf
n'est lu que parldconfig
(le programme de génération de cache), pas parld.so
(le chargeur dynamique). Vous pouvez modifier l'emplacement du fichier de configuration si vous souhaitez générer un cache différent de celui par défaut du système./etc/ld.so.cache
est lu parld.so
et vous ne pouvez pas le lire à partir d'un autre emplacement. Il peut néanmoins être utile de passer un emplacement de sortie différent àldconfig
. Le cas d'utilisation le plus courant est probablement les environnements chroot . Vous pouvez utiliserldconfig -r /some/root
pour exécuterldconfig
sur une autre racine et placer la sortie où vous le souhaitez (à l'intérieur ou à l'extérieur de cette racine). Vous devrez soit émettre la sortie sur,/some/root/etc/ld.so.cache
soit la copier plus tard. Il existe d'autres cas d'utilisation assez obscurs, par exemple si vous souhaitez exécuter enldconfig
tant qu'utilisateur non privilégié (qui ne peut pas écrire/etc/ld.so.cache
), puis déplacer le fichier en place ultérieurement.la source