gpt4 book ai didi

linux - LD_LIBRARY_PATH 副作用

转载 作者:IT王子 更新时间:2023-10-29 00:37:29 27 4
gpt4 key购买 nike

我对更改 LD_LIBRARY_PATH 有奇怪的副作用。

当我附加一个包含库的路径时,例如:

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/my_path/lib

然后,一切都变得令人难以置信的缓慢。例如,一个简单的 ls 可以是 10 秒长。

ldd 输出在 LD_LIBRARY_PATH 更改前后完全相同,我尝试使用 调试慢速 ls 的执行>strace :我在这两种情况下得到完全相同的执行。在执行 ls 期间,执行甚至不会卡住(因为 strace 在 10 秒的滞后期间没有输出任何内容,然后突然完美地执行 ls)。所以我认为它可能来 self 的 shell,但这是相同的,在我的 bash 上运行 strace 并在这两种情况下执行 ls 给我相同的 strace 输出:shell 执行 ls 并等待其执行结束(滞后 strace 之前的最后一个 strace 输出是 waitpid(...))。所以我猜想在 ls 的启动和执行之间发生了一些错误,就像它是内核级问题一样。它真的就像在 ls 上进行了 sleep(0 cpu 使用率)。

在延迟期间,我的 CPU 和网络事件完全正常...

请注意,新 LD 路径中的库不与任何“标准库”冲突,因此它不会干扰我示例中的 ls

因此,我对有关 LD_LIBRARY_PATH 副作用或如何深入调试我的示例的深入解释很感兴趣。

最佳答案

这篇文章已经过时了,所以我不知道您是否找到了解决方案。无论如何,我不知道这是否有帮助,但在大多数现代 GNU/Linux 系统中,不推荐使用 LD_LIBRARY_PATH 并且不鼓励使用。

因此我有几个建议:

  1. 如果您想继续使用它,请先尝试通过预先挂起而不是将您的库路径附加到 LD_LIBRARY_PATH。如果在以前的库目录中扫描路径需要很长时间,这应该会有所帮助。

  2. 使用 LDCONFIG 系统,这是当今使用 LD 目录的(新)正确方法。您只需在 /etc/ld.so.conf 文件中添加您的库的路径,或者更好的是,在/etc/ld.so.conf.d/中添加一个包含路径的文件到您的库(如果 /etc/ld.so.conf 中有 include 指令,它将被获取,默认情况下通常是这种情况)。然后运行sudo ldconfig更新系统LD搜索路径。

希望对您有所帮助。干杯

关于linux - LD_LIBRARY_PATH 副作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10899861/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com