我在 docker 中运行 centos 6.10。正如标题中所描述的,我在 .conf 文件中设置了/usr/local/lib
和。每次将.so库放入时都需要运行,否则将找不到它(编译Python 3时)。但是,设置为(不将它们写入 中的conf 文件)在放置库后不需要任何额外的步骤。是什么原因造成的?/usr/local/lib64
/etc/ld.so.conf.d/
ldconfig
/usr/local/lib
LD_LIBRARY_PATH
/usr/local/lib:/usr/local/lib64
/etc/ld.so.conf.d/
顺便问一下,为什么像/lib
和 这样的目录/usr/lib
没有设置在/etc/ld.so.conf
or中/etc/ld.so.conf.d/
?
答案1
当应用程序通过 glibc 运行时,LD_LIBRARY_PATH=PATH app
将扫描指定目录中的所有文件。
当您不使用此标志时,仅/etc/ld.so.cache
打开缓存库 ( ) 以加快进程。想象一下,您需要连续运行某个应用程序 100K 次,并且每次都必须重新扫描所有目录。它可能会让一切变得缓慢。