由于 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.2
Arch 上的指向,并将其复制到/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
您还可以将RPATH
in设置xbright
为指向/usr/local/lib
,这样您就不需要LD_LIBRARY_PATH
一直设置:
patchelf --set-rpath /usr/local/lib /usr/local/bin/xbright