FreeNX 服务器在启动时给出以下错误:
APPLICATION_LIBRARY_PRELOAD [...] /usr/lib/libX11.so could not be found
.
问题是 /usr/lib/libX11.so 库已经安装,除了在我的系统上它在目录中/usr/lib/NX/lib
。
如何将 NX 指向正确的目录?
中没有 APPLICATION_LIBRARY_PRELOAD /etc/nxserver/node.conf
。我怎样才能解决这个目录问题而不弄乱 SELinux 上下文(想在 NX 正在寻找的任何地方添加链接)?
根据您问题中的描述,您的问题不在于未安装该库,而是
ld
(动态链接器)不知道它在哪里:CentOS 期望该库位于其中,/usr/lib/
但它确实位于/usr/lib/NX/lib
.有几种方法可以解决此问题:
在启动 NX 服务器之前,设置
LD_LIBRARY_PATH
环境变量以包含您的非标准库路径。从
/usr/lib/NX/lib/*
库创建符号链接到/usr/lib
(“正确的方式”)
ld
讲述您的非标准库路径,以便搜索它们。选项 1 和 2 应该是不言自明的。
有关选项 3 的更多信息,请查看有关类似问题的答案。
我回答我自己的问题只是因为我碰巧找到了第四个解决方案——大海捞针。我对 进行了一些
ldd
测试/usr/bin/nx*
,但奇怪的是没有返回与我期望的动态库匹配的信息。grep
在同一个文件上碰巧在以下位置找到了这个块/usr/bin/nxloadconfig
:我手动编辑
PATH_LIB=$NX_DIR/lib
到PATH_LIB=$NX_DIR/lib/NX/lib
现在唯一丢失的文件实际上丢失了(libXcomp.so.2)