ldconfig
имеет два интересных варианта:
-f conf
Use conf instead of /etc/ld.so.conf.
-C cache
Use cache instead of /etc/ld.so.cache.
Я попытался скопировать /etc/ld.so.conf
в свой домашний каталог, и отредактировал его, чтобы включить пути к моим локальным библиотекам, например, /home/syockit/local/usr/lib
и т. Д. И побежал
ldconfig -f /home/syockit/ld.so.conf -C /home/syockit/ld.so.cache
и впоследствии, чтобы подтвердить, что библиотеки кэшируются, я запустил
ldconfig -f /home/syockit/ld.so.conf -C /home/syockit/ld.so.cache -p | less
и он включает в себя все мои библиотеки, а также системные библиотеки.
Теперь я хочу, чтобы компоновщик по умолчанию использовал эти два. Но man ld.so
я не вижу упоминания о возможности использования пользовательских .conf
или .cache
. Так в чем же смысл этих двух вариантов ldconfig
?
источник
/etc/ld.so.conf
только чтениеldconfig
(программа генерации кэша), но неld.so
(динамический загрузчик). Вы можете изменить местоположение файла конфигурации, если хотите создать кеш, отличный от системного по умолчанию./etc/ld.so.cache
читается,ld.so
и вы не можете заставить его читать из другого места. Тем не менее, может быть полезно передать другое местоположение выводаldconfig
. Наиболее распространенным вариантом использования, вероятно, является среда chroot . Вы можете использоватьldconfig -r /some/root
для запускаldconfig
на альтернативном корне и размещать вывод в любом месте (внутри или вне этого корня). Вам нужно будет либо выдать выходные данные,/some/root/etc/ld.so.cache
либо скопировать их туда позже. Существуют и другие довольно неясные варианты использования, например, если вы хотите работатьldconfig
как непривилегированный пользователь (который не может писать/etc/ld.so.cache
), а затем переместить файл на место позже.источник