Как мне настроить FreeNX APPLICATION_LIBRARY_PRELOAD на правильный каталог?
Сервер 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 смотрит)?
2 ответа
Я отвечаю на свой вопрос только потому, что мне удалось найти 4-е решение - иголку в стоге сена. Я сделал несколько ldd тестирование на /usr/bin/nx*, что странным образом не возвращало информацию, соответствующую моим динамическим библиотекам, которую я ожидал. grep на тех же самых файлах, которые были найдены в /usr/bin/nxloadconfig:
#########################################################################
# 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/lib в PATH_LIB=$NX_DIR/lib/NX/lib и теперь единственные отсутствующие файлы фактически отсутствуют (libXcomp.so.2)
Основываясь на описании вашего вопроса, ваша проблема не в том, что библиотека не установлена, а в том, что ld (динамический компоновщик) не знает, где он находится: CentOS ожидает, что библиотека будет в /usr/lib/ но это действительно в /usr/lib/NX/lib,
Есть несколько способов исправить это:
Установить
LD_LIBRARY_PATHпеременная окружения, включающая ваши нестандартные пути к библиотекам перед запуском сервера NX.Создать символические ссылки из
/usr/lib/NX/lib/*библиотеки для/usr/lib("Правильный путь") Расскажите
ldо ваших нестандартных путях к библиотекам, поэтому он ищет их.
Варианты 1 и 2 должны быть довольно понятны.
Для получения дополнительной информации о Варианте 3, проверьте этот ответ на подобный вопрос.