EDV:FreeNX/NX-3.0.0-freenx-solaris-10
FreeNX mit 3.0.0-backend auf Solaris 10
Nachdem FreeNX (fast nur) auf shell-Skripten basiert, sollte zumindest der FreeNX-Teil eines NX-Servers plattformunabhängig sein. D.h. mit den Libraries von nomachine.com fßr Solaris sollte man auch einen FreeNX-Server auf Solaris realisieren kÜnnen. Hier beschreibe ich eine solche Installation.
NX-Pakete installieren
Die Pakete bekommt man von der Download-Seite von nomachine.com
pkgadd -d nxclient-3.0.0-84.sparc pkgadd -d nxnode-3.0.0-88.sparc pkgadd -d nxserver-3.0.0-74.sparc
die Original-Dateien sichern:
mv /usr/NX/bin/nxserver /usr/NX/bin/nxserver.nomachine mv /usr/NX/bin/nxclient /usr/NX/bin/nxclient.nomachine
FreeNX installieren
svn checkout svn://svn.berlios.de/freenx
cp freenx/freenx-server/trunk/nxkeygen /usr/NX/bin/ cp freenx/freenx-server/trunk/nxloadconfig /usr/NX/bin/ cp freenx/freenx-server/trunk/nxnode /usr/NX/bin/ cp freenx/freenx-server/trunk/nxnode-login /usr/NX/bin/ cp freenx/freenx-server/trunk/nxserver /usr/NX/bin/ cp freenx/freenx-server/trunk/nxsetup /usr/NX/bin/ cp freenx/freenx-server/trunk/nxcups-gethost /usr/NX/bin/ cp freenx/freenx-server/trunk/nxdesktop_helper /usr/NX/bin/ cp freenx/freenx-server/trunk/nxviewer_helper /usr/NX/bin/ [ -f /usr/NX/etc/node.conf ] || cp freenx/freenx-server/trunk/node.conf.sample /usr/NX/etc/node.conf
cd freenx/freenx-server/trunk/nxserver-helper/ gcc -o nxserver-helper nxserver-helper.c -lsocket cp nxserver-helper /usr/NX/bin/
ln -s /usr/NX/bin/nxserver /usr/bin/ ln -s /usr/NX/bin/nxsetup /usr/bin/ ln -s /usr/NX/bin/nxagent /usr/bin/ ln -s /usr/NX/bin/nxloadconfig /usr/bin/
Damit nxclient zur VerfĂźgung steht:
ln -s /usr/NX/bin/nxclient.nomachine /usr/local/bin/nxclient
sicherheitshalber noch ein fehlender (?) Link:
cd /usr/NX/lib && ln -s libXrender.so.1.2.2 libXrender.so.1.2
Vorbereitungen
FĂźr die unten gezeigte Konfiguration braucht man ein fakehome Verzeichnis, in dem die lokalen nx-Dateien angelegt werden kĂśnnen. In unserem Fall brauchen wir das, weil die Homeverzeichnisse per AFS zur VerfĂźgung gestellt werden.
mkdir /usr/NX/fakehome chmod 1777 /usr/NX/fakehome
Auf dem Rechner werden die Pakete von blastwave verwendet. Von dort holen wir uns die noch benĂśtigten Programme.
Dringend benĂśtigte Pakete:
pkg-get -i expect pkg-get -i netcat pkg-get -i textutils
Zusätzlich noch
pkg-get -i icewm pkg-get -i xfce pkg-get -i cupsd pkg-get -i samba_client pkg-get -i rdesktop vncviewer
expect wird an einem bestimmten Ort erwartet:
ln -s /opt/csw/bin/expect /usr/bin/expect
Dann sollten Sie die Verzeichnisangaben am Anfang von /usr/NX/bin/nxloadconfig ändern:
NX_DIR=/usr/NX NX_ETC_DIR=$NX_DIR/etc NX_SESS_DIR=$NX_DIR/var/db NX_HOME_DIR=$NX_DIR/home/nx
das geht auch so :
cd /usr/NX/bin/ cat nxloadconfig | sed -e "s#^NX_DIR=.*#NX_DIR=/usr/NX#" > nxloadconfig.1 cat nxloadconfig.1 | sed -e "s#^NX_ETC_DIR=.*#NX_ETC_DIR=\$NX_DIR/etc#" > nxloadconfig.2 cat nxloadconfig.2 | sed -e "s#^NX_SESS_DIR=.*#NX_SESS_DIR=\$NX_DIR/var/db#" > nxloadconfig.1 cat nxloadconfig.1 | sed -e "s#^NX_HOME_DIR=.*#NX_HOME_DIR=\$NX_DIR/home/nx#" > nxloadconfig rm nxloadconfig.1 nxloadconfig.2
LOG-Datei vorbereiten
touch /var/log/nxserver.log chown nx /var/log/nxserver.log
Solaris 9
Die hier vorliegende Beschreibung gilt fßr Solaris 10. Ich habe es auch auf Solaris 9 versucht, dabei musste ich zusätzlich noch nxloadconfig ändern. Das Hauptproblem ist wohl, dass auf solaris 9 'egrep' nicht so funktioniert wie erwartet.
Folgende Ănderungen wurden an nxloadconfig vorgenommen:
# diff nxloadconfig ~/nx/freenx/freenx-server/trunk/nxloadconfig 59c59 < NX_DIR=/usr/NX --- > NX_DIR=/usr 62,64c62,64 < NX_ETC_DIR=$NX_DIR/etc < NX_SESS_DIR=$NX_DIR/var/db < NX_HOME_DIR=$NX_DIR/home/nx --- > NX_ETC_DIR=/etc/nxserver > NX_SESS_DIR=/var/lib/nxserver/db > NX_HOME_DIR=/var/lib/nxserver/home 389,390c389 < # [ -z $(echo "$SSHD_PORT" | egrep "^[1-9][0-9]{0,4}$") ] && \ < [ -z $(echo "$SSHD_PORT" | egrep "^[1-9][0-9]+$") ] && \ --- > [ -z $(echo "$SSHD_PORT" | egrep "^[1-9][0-9]{0,4}$") ] && \ 413,414c412 < # [ -z $(echo "$DISPLAY_BASE" | egrep "^[1-9][0-9]{0,4}$") ] && \ < [ -z $(echo "$DISPLAY_BASE" | egrep "^[1-9][0-9]+$") ] && \ --- > [ -z $(echo "$DISPLAY_BASE" | egrep "^[1-9][0-9]{0,4}$") ] && \ 416,417c414 < # [ -z $(echo "$SESSION_LIMIT" | egrep "^[1-9][0-9]{0,4}$") ] && \ < [ -z $(echo "$SESSION_LIMIT" | egrep "^[1-9][0-9]+$") ] && \ --- > [ -z $(echo "$SESSION_LIMIT" | egrep "^[1-9][0-9]{0,4}$") ] && \ 419,422c416,419 < # [ -z $(echo "$SESSION_USER_LIMIT" | egrep "^[1-9][0-9]{0,4}$") -o $SESSION_USER_LIMIT -gt $SESSION_LIMIT ] && \ < # ERROR="yes" && echo "Error: Invalid value \"SESSION_USER_LIMIT=$SESSION_USER_LIMIT\"" < # [ -z $(echo "$DISPLAY_LIMIT" | egrep "^[1-9][0-9]{0,4}$") -o $DISPLAY_LIMIT -lt $SESSION_LIMIT ] && \ < # ERROR="yes" && echo "Error: Invalid value \"DISPLAY_LIMIT=$DISPLAY_LIMIT\"" --- > [ -z $(echo "$SESSION_USER_LIMIT" | egrep "^[1-9][0-9]{0,4}$") -o $SESSION_USER_LIMIT -gt $SESSION_LIMIT ] && \ > ERROR="yes" && echo "Error: Invalid value \"SESSION_USER_LIMIT=$SESSION_USER_LIMIT\"" > [ -z $(echo "$DISPLAY_LIMIT" | egrep "^[1-9][0-9]{0,4}$") -o $DISPLAY_LIMIT -lt $SESSION_LIMIT ] && \ > ERROR="yes" && echo "Error: Invalid value \"DISPLAY_LIMIT=$DISPLAY_LIMIT\"" 467,468c464 < # [ "$ENABLE_SERVER_FORWARD" = "1" -a -z $(echo "$SERVER_FORWARD_PORT" | egrep "^[1-9][0-9]{0,4}$") ] && \ < [ "$ENABLE_SERVER_FORWARD" = "1" -a -z $(echo "$SERVER_FORWARD_PORT" | egrep "^[1-9][0-9]+$") ] && \ --- > [ "$ENABLE_SERVER_FORWARD" = "1" -a -z $(echo "$SERVER_FORWARD_PORT" | egrep "^[1-9][0-9]{0,4}$") ] && \ 477,478c473 < # [ "$ENABLE_NOMACHINE_FORWARD_PORT" = "1" -a -z $(echo "$NOMACHINE_FORWARD_PORT" | egrep "^[1-9][0-9]{0,4}$") ] && \ < [ "$ENABLE_NOMACHINE_FORWARD_PORT" = "1" -a -z $(echo "$NOMACHINE_FORWARD_PORT" | egrep "^[1-9][0-9]+$") ] && \ --- > [ "$ENABLE_NOMACHINE_FORWARD_PORT" = "1" -a -z $(echo "$NOMACHINE_FORWARD_PORT" | egrep "^[1-9][0-9]{0,4}$") ] && \
und auch in /usr/NX/bin/nxsetup: Hier liegt das Problem bei cp
Zeile 362
cp -af "$CUPS_BACKEND/ipp" "$CUPS_IPP_BACKEND"
ändern in
cp -prf "$CUPS_BACKEND/ipp" "$CUPS_IPP_BACKEND"
Eine hier funktionierende Konfiguration
#grep -v ^# /usr/NX/etc/node.conf | grep -v ^$ ENABLE_PASSDB_AUTHENTICATION="0" NX_LOG_LEVEL=7 NX_LOGFILE=/var/log/nxserver.log ENABLE_FOOMATIC="0" CUPS_BACKEND="/opt/csw/lib/cups/backend" CUPS_IPP_BACKEND="$CUPS_BACKEND/nxipp" CUPS_ETC="/opt/csw/etc/cups" SAMBA_MOUNT_SHARE_PROTOCOL="none" USER_FAKE_HOME=/usr/NX/fakehome/$USER DEFAULT_X_SESSION=/usr/dt/bin/Xsession COMMAND_START_KDE=/opt/csw/bin/icewm COMMAND_START_CDE=/opt/csw/bin/xfce4-session COMMAND_XAUTH=/usr/openwin/bin/xauth COMMAND_NETCAT=/opt/csw/bin/netcat COMMAND_CUPSD=/opt/csw/sbin/cupsd COMMAND_MD5SUM=/opt/csw/bin/gmd5sum COMMAND_RDESKTOP=/opt/csw/bin/rdesktop COMMAND_VNCVIEWER=/opt/csw/bin/vncviewer ENABLE_EXTERNAL_NXDESKTOP="1" ENABLE_EXTERNAL_NXVIEWER="1" AGENT_EXTRA_OPTIONS_X="-noshmem " AGENT_LIBRARY_PATH=/usr/NX/lib/ PROXY_LIBRARY_PATH=/usr/NX/lib/ APPLICATION_LIBRARY_PRELOAD=/usr/NX/lib/libXft.so.2.1.2:/usr/NX/lib/libX11.so:/usr/NX/lib/libXext.so:/usr/NX/lib/libXcomp.so:/usr/NX/lib/libXcompext.so:/usr/NX/lib/libXrender.so
Aktivierung der Installation
nxsetup --install --clean --purge