ldconfig
tiene dos opciones interesantes:
-f conf
Use conf instead of /etc/ld.so.conf.
-C cache
Use cache instead of /etc/ld.so.cache.
Traté de copiar /etc/ld.so.conf
en mi propio directorio de inicio y lo edité para incluir rutas a mis bibliotecas locales, por ejemplo, /home/syockit/local/usr/lib
etc. Y ejecuté
ldconfig -f /home/syockit/ld.so.conf -C /home/syockit/ld.so.cache
y posteriormente, para confirmar que las bibliotecas están en caché, ejecuté
ldconfig -f /home/syockit/ld.so.conf -C /home/syockit/ld.so.cache -p | less
e incluye todas mis bibliotecas además de las bibliotecas del sistema.
Ahora, quiero que el enlazador predeterminado use estos dos. Pero en man ld.so
, no veo ninguna mención de poder usar personalizado .conf
o .cache
. Entonces, ¿cuál es el punto de las dos opciones anteriores de ldconfig
entonces?
fuente
/etc/ld.so.conf
solo se lee porldconfig
(el programa de generación de caché), no porld.so
(el cargador dinámico). Puede cambiar la ubicación del archivo de configuración si desea generar un caché diferente del predeterminado del sistema./etc/ld.so.cache
se leeld.so
y no se puede hacer que se lea desde una ubicación diferente. No obstante, puede ser útil pasar una ubicación de salida diferente aldconfig
. El caso de uso más común es probablemente entornos chroot . Puede usarldconfig -r /some/root
para ejecutarldconfig
en una raíz alternativa y colocar la salida donde desee (dentro o fuera de esa raíz). Tendrá que emitir la salida en/some/root/etc/ld.so.cache
o copiarla allí más tarde. Hay otros casos de uso bastante oscuros, por ejemplo, si desea ejecutarseldconfig
como un usuario sin privilegios (que no puede escribir/etc/ld.so.cache
) y luego mover el archivo a su lugar más tarde.fuente