четверг, 17 января 2008 г.

Установка NX сервера FreeNX 0.7.1 на Ubuntu Linux 7.10

Для установки мы воспользуемся бинарными пакетами NoMachine NX сервер.
Текущая версия 3.1.0, скачать можно с сайта

Мы скачаем NX Free Edition for Linux в формате tgz для платформы i386 - 3 пакета - node, client, server
полученные пакеты распакуем в /usr/

# tar -C /usr -zxf nxserver-3.1.0-2.i386.tar.gz
# tar -C /usr -zxf nxnode-3.1.0-3.i386.tar.gz
# tar -C /usr -zxf nxclient-3.1.0-2.i386.tar.gz

Так же нам потребуются NX Open Source Components , которые мы скачаем опять-же с сайта
Их текущая версия соответствуетсобранным пакетам и является 3.1.0
скаченные пакеты поместим в /usr/NX/source/

FreeNX мы возьмем с официального сайта. Текущая версия - 0.7.1

На нашу систему Ubuntu Linux 7.10 потребуется так-же доустановить ряд пакетов
#apt-get install zlib1g-dev libX11-dev libjpeg-dev libpng12-dev x11proto-xext-dev libxdamage-dev libxrandr-dev libxtst-dev libaudiofile-dev expect g++ patch smbfs


Сборка NX Open Source Components

переходим к нашим пакетам
# cd /usr/NX/source/

распаковываем все пакеты в текущею директорию:
# find . -name "*tar.gz" -exec tar -zxf {} \;

у нас должны появиться следующие директории:
nx-X11 nxcomp nxcompext nxcompsh nxcompshad nxesd nxkill nxproxy nxscripts nxsensor nxservice nxspool nxssh nxuexec

собираем основные библиотеки компресии

# cd /usr/NX/source/nxcomp
# ./configure --prefix=/usr/NX
# make
# cp -P libXcomp.so* /usr/NX/lib

# cd /usr/NX/source/nxcompext/
# ./configure --prefix=/usr/NX
# make
# cp -P libXcompext.so* /usr/NX/lib

# cd /usr/NX/source/nxcompsh
# ./configure --prefix=/usr/NX
# make
# cp -P libXcompsh.so* /usr/NX/lib/

# cd /usr/NX/source/nxcompshad/
# ./configure --prefix=/usr/NX
# make
# cp -P libXcompshad.so* /usr/NX/lib/

# cd /usr/NX/source/nxesd/
# ./configure --prefix=/usr/NX
# make
# make install

Установка FreeNX

# tar -C /usr/NX/ -zxf freenx-0.7.1.tar.gz
# cd /usr/NX/freenx-0.7.1/

т.к. у нас все компоненты распологаются в директориях /usr/NX/
нам необходимо провести соответствующие изменения, которые находятся в gentoo-nomachine.diff

# patch -p0 < gentoo-nomachine.diff

заменим в /usr/NX/bin/
следующие исполняемые файлы

# cp -f nxkeygen nxloadconfig nxnode nxnode-login nxserver nxsetup nxcups-gethost /usr/NX/bin/

теперь соберем nxserver-helper
# cd nxserver-helper/
# make
# cp -f nxserver-helper /usr/NX/bin/

Сделаем ссылок

# ln -s /usr/NX/bin/nxserver /usr/bin/nxserver
# ln -s /usr/NX/bin/nxsetup /usr/sbin/nxsetup
# ln -s /usr/NX/bin/nxloadconfig /usr/sbin/nxloadconfig
# ln -s /usr/NX/bin/nxagent /usr/NX/bin/nxdesktop
# ln -s /usr/NX/bin/nxagent /usr/NX/bin/nxviewer
# ln -s /sbin/mount.cifs /sbin/smbmount
# ln -s /sbin/umount.cifs /sbin/smbumount
отсутствующая ссылка
# ln -s /usr/NX/lib/libXrender.so.1.2.2 /usr/NX/lib/libXrender.so.1.2
Специфично для Ubuntu
# ln -s /etc/X11/xinit /etc/X11/xdm

Финальная часть

# nxsetup --install --setup-nomachine-key

Копируем пример файла конфигурации
# cp node.conf.sample /usr/NX/etc/node.conf

на время тестирования можно включить логирование (по умолчанию - выключено)
NX_LOG_LEVEL=7

теперь проверяем статус сервера
# nxserver --status
NX> 100 NXSERVER - Version 2.1.0-71 OS (GPL)
NX> 123 Service stopped
NX> 999 Bye

и запускаем его
# nxserver --start
NX> 100 NXSERVER - Version 2.1.0-71 OS (GPL)
NX> 122 Service started
NX> 999 Bye

Подключение к терминальному серверу FreeNX

для подключения нам понадобится клиент от Nomachine, который можно скачать с сайта

5 комментариев:

Анонимный комментирует...

Попробовал установить, ругается на конфигурацию.. Куда лезть, что смотреть?

root@ubuntu001:/usr/NX/freenx-server-0.7.2/nxserver-helper# nxsetup --install --setup-nomachine-key
Setting up /etc/nxserver ...done
Setting up /var/lib/nxserver/db ...done
Setting up /var/log/nxserver.log ...done
Setting up known_hosts and authorized_keys2 ...done
Setting up permissions ...done

----> Testing your nxserver configuration ...
Warning: Could not find nxdesktop in /usr/lib/nx. RDP sessions won't work.
Warning: Could not find nxviewer in /usr/lib/nx. VNC sessions won't work.
Warning: Invalid value "APPLICATION_LIBRARY_PRELOAD=/usr/lib/libX11-nx.so.6.2:/usr/lib/libXext-nx.so.6.4:/usr/lib/libXcomp.so.3:/usr/lib/libXcompext.so.1:/usr/lib/libXcompshad.so.3:/usr/lib/libXrender-nx.so.1". /usr/lib/libXcompext.so.1 could not be found. Users will not be able to run a single application in non-rootless mode.
Warning: Invalid value "COMMAND_FOOMATIC=/usr/lib/cups/driver/foomatic-ppdfile"
Users will not be able to use foomatic.
Warning: "/usr/lib/cups/backend/nxipp" is not executable.
Users will not be able to enable printing.
Warning: "/usr/lib/cups/backend/smb" is not executable.
Users will not be able to enable printing.
Warning: Invalid value "CUPS_ETC=/etc/cups/"
Users will not be able to enable printing.
Warning: Invalid value "DEFAULT_X_SESSION=/etc/X11/xdm/Xsession"
Users might not be able to request a default X session.
Warning: Invalid value "COMMAND_START_CDE=cdwm"
Users will not be able to request a CDE session.
Warning: Invalid value "COMMAND_XTERM=xterm"
Users will not be able to request an xterm session.
Warning: Invalid value "COMMAND_CUPSD=/usr/sbin/cupsd"
Users will not be able to enable printing.
strings: '/usr/sbin/cupsd': No such file
Warning: Invalid cupsd version of "/usr/sbin/cupsd". Need version 1.2.
Users will not be able to enable printing.
Error: Invalid value "COMMAND_MD5SUM=openssl md5"

Errors occured during config check.
Please correct the configuration file.

root@ubuntu001:/usr/NX/freenx-server-0.7.2/nxserver-helper#

Sun Cho комментирует...

не видит библиотеки libXcompext.so.1
не настроена печать
не прописана Х-сессия в Xsession (по умолчанию - знает gdm\kdm)
вот...

uptimebox комментирует...

А у меня в Wine-приложениях отказывается русские буквы через терминал принимать. Не сталкивался?

Анонимный комментирует...

Можно кстати не компилить NX Open Source Components, а просто установить соответствующую версию клиента и там уже есть скомпиленые библиотеки.

Sun Cho комментирует...

дыг если память не изменяет, так и сделано, только с поправкой на то, что мы используем freeNX
в котором нет ограничений на количество сессий.
хотя... unix way