如何为某些程序使用自定义库?

如何为某些程序使用自定义库?

这是我的情况。我正在运行 Centos 7,有我的包管理器提供的 libcurl 标准版本,以及几个依赖于 libcurl 的程序。

其中之一是 pycurl,它是 libcurl 的 python 绑定。我认为它在 python 运行时动态加载 libcurl ?

我希望 pycurl 使用 libcurl 的自定义版本,而所有其他程序都使用标准版本。我怎样才能做到这一点?

答案1

我认为它在 python 运行时动态加载 libcurl ?

是的。

我希望 pycurl 使用 libcurl 的自定义版本,而所有其他程序都使用标准版本。

确保您的 libcurl 未安装到标准库路径之一,包括/usr/local/lib.如果是/opt/curl/lib,在运行 python 之前:

export LD_LIBRARY_PATH=/opt/curl/lib:$LD_LIBRARY_PATH

目前很可能尚未定义,但最后一部分 ( :$LD_LIBRARY_PATH) 存在以防万一。这会覆盖链接器/加载器使用的标准搜索路径,因此如果其中有兼容的 libcurl,则会加载该路径。

您应该能够通过随后ldd在 pycurl 模块二进制文件上运行来检查这一点,无论它在哪里。

相关内容