Как мне настроить 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, проверьте этот ответ на подобный вопрос.