如何将FreeNX APPLICATION_LIBRARY_PRELOADconfiguration到正确的目录?

FreeNX服务器启动时出现以下错误:
APPLICATION_LIBRARY_PRELOAD [...] /usr/lib/libX11.so could not be found

问题是/usr/lib/libX11.so库已经安装了,除了我的系统在/usr/lib/NX/lib
我如何将NX指向正确的目录?

/etc/nxserver/node.conf没有APPLICATION_LIBRARY_PRELOAD。 我怎样才能解决这个目录问题,而不是搞砸SELinux上下文(思考只要添加链接,无处不在NX)?

基于你的问题中的描述,你的问题不是没有安装库,而是ld (dynamic连接器)不知道它在哪里:CentOS希望库在/usr/lib/但它是真的在/usr/lib/NX/lib

有几种方法可以解决这个问题:

  1. 启动NX服务器之前,请设置LD_LIBRARY_PATH环境variables以包含非标准库path。

  2. /usr/lib/NX/lib/*库创build符号链接到/usr/lib

  3. (“正确的方式”)告诉ld你的非标准库path,以便search它们。


选项1和2应该是不言而喻的。
有关选项3的更多信息, 请查看类似问题的答案 。

我只是回答我自己的问题,因为我碰巧find了第四个解决scheme – 大海捞针。 我在/usr/bin/nx*上做了一些lddtesting,奇怪的是它没有返回匹配我期望的dynamic库的信息。 在相同的文件上的grep恰好在/usr/bin/nxloadconfigfind了这个块:

 ######################################################################### # INTERNAL STUFF # DO NOT TOUCH unless you REALLY know what you are doing ######################################################################### NX_VERSION=3.2.0-74-SVN NX_LICENSE="OS (GPL, using backend: %BACKEND%)" # Where can different nx components be found NX_DIR=/usr PATH_BIN=$NX_DIR/bin # if you change that, be sure to also change the public keys PATH_LIB=$NX_DIR/lib NX_ETC_DIR=/etc/nxserver NX_SESS_DIR=/var/lib/nxserver/db NX_HOME_DIR=/var/lib/nxserver/home # Advanced users ONLY AGENT_LIBRARY_PATH="" #Calculated PROXY_LIBRARY_PATH="" #Calculated APPLICATION_LIBRARY_PATH="" #Calculated APPLICATION_LIBRARY_PRELOAD="" #Calculated # the name of the authorized keys file for ssh SSH_AUTHORIZED_KEYS="authorized_keys2" 

我手动编辑PATH_LIB=$NX_DIR/libPATH_LIB=$NX_DIR/lib/NX/lib ,现在唯一缺less的文件实际上是缺less的(libXcomp.so.2)