为什么需要的附带共享库会失败,如下所示:

为什么需要的附带共享库会失败,如下所示:

由于 Debian 程序通常滞后于共享库/依赖项,因此将其与合格的共享库一起使用应该可以工作,即通过基于滚动/快速更新操作系统的相同最新更新,例如 Arch 程序/软件包

所以只需将所有包文件从它复制到 Debian 操作系统自己的,这里例如程序是光明网,其部门。复制到/usr/local/lib

但为什么需要它的附带共享库会以这种方式失败:

$ LD_LIBRARY_PATH=/usr/local/lib xbright =5

xbright: relocation error: /usr/local/lib/libc.so.6: symbol _dl_audit_symbind_alt version GLIBC_PRIVATE not defined in file ld-linux-x86-64.so.2 with link time reference

通过好的信息清除,失败的是

$ xbright =5
  xbright: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by xbright)

请帮忙,如何让它按预期工作?

答案1

动态链接器也是 C 库的一部分,您也需要复制它。检查/lib64/ld-linux-x86-64.so.2Arch 上的指向,并将其复制到/usr/local/lib;然后通过运行检查它是否正常工作

LD_LIBRARY_PATH=/usr/local/lib /usr/local/lib/ld-2.34.so xbright =5

(替换ld-2.34.so为适当的名称)。

您可以使用以下命令将二进制文件设置为默认使用该解释器patchelf

patchelf --set-interpreter /usr/local/lib/ld-2.34.so /usr/local/bin/xbright

您还可以将RPATHin设置xbright为指向/usr/local/lib,这样您就不需要LD_LIBRARY_PATH一直设置:

patchelf --set-rpath /usr/local/lib /usr/local/bin/xbright

相关内容