Die Binaries für OpenSolaris gibt es auf http://www.opensolaris.org/os/project/awards/awards_land/Entries/. Dazu muss man einfach die Datei http://dlc.sun.com/osol/awards/downloads/current/freenx.tar.gz runterladen und in einem temporären Verzeichnis entpacken. Dann das Verzeichnis freenx/freenx-0.7.2-nx-3.1-nevada-b90-x86/opt/NX nach /opt verschieben und mit "chown -R root:bin /opt/NX" den Besitzer richtig setzen.
Laut README sollte nun ein "/opt/NX/bin/nxsetup --install" genügen, um die Installation abzuschliessen. Da kamen bei mir aber gleich mal ein paar Fehlermeldungen, da die Binaries offenbar nicht mehr so hundertprozentig zum aktuellen OpenSolaris passen. Und beim Aufbau einer Verbindung lief ich auch dauernd in ein Timeout.
Um diese Fehler zu beheben ist folgendes notwendig:
1) Fehlende Pakete mit SUNWcups, SUNWexpect, SUNWnetcat aus dem OpenSolaris Repository nachinstallieren.
2) Die Meldung "sed: command garbled: s/%BACKEND%/3.1.0" kann man durch folgende Änderung beseitigen. Das Problem ist nämlich, dass in einem Script das strings Kommando zwei Zeilen zurückliefert und nicht eine Zeile. Einfach die Datei /opt/NX/bin/nxloadconfig öffnen (zuvor eine Sicherungskopie machen) und folgende Zeile ( bei mir in Zeile 312) wie folgt ändern:
NX_BACKEND_VERSION=$(strings $PATH_BIN/nxagent 2>/dev/null | egrep 'NXAGENT - Version' | sed 's/.*Version //g')
ersetzen durch:
NX_BACKEND_VERSION=$(strings $PATH_BIN/nxagent 2>/dev/null | egrep 'NXAGENT - Version' | sed 's/.*Version //g' | head -n 1)
3) Und zuletzt ist in der Datei /opt/NX/bin/nxnode (zuvor wieder eine Sicherungskopie anlegen) folgende Zeile (direkt nach Zeile 1013 "uniqueid=$(getparam uniqueid)") einzufügen. Das ganze ist ein Workaround für die komischen Unicode-Zeichen anstelle der Buchstaben BCDEF in den Session-Id's. Ich habe nicht näher erforscht, warum die da sind, aber so werden sie korrekt verwendet:
uniqueid=`echo "$uniqueid" | /usr/gnu/bin/tr -d '\357\274' | /usr/gnu/bin/tr '\242\243\244\245\246' 'BCDEF'`Achtung auf die Backticks am Anfang und am Ende!!!
Und dann hat's bei mir funktioniert. Ohne diese Änderungen ist der Client beim Verbinden immer hängengeblieben und wenn man im Internet recherchiert sieht man, dass einige Leute auch diese Probleme haben.
Was kann man nun machen, wenn man auch weiterhin keine Verbindung zustande bringt. In der Datei /opt/NX/bin/nxloadconfig kann man durch folgende Änderung das Debugging in die Datei /var/log/nxserver.log aktivieren:
NX_LOG_LEVEL=0
SESSION_LOG_CLEAN=1
ist zu ersetzen durch:
NX_LOG_LEVEL=6
SESSION_LOG_CLEAN=0
Und dann kann man sich einfach an Hand der Fehlermeldungen durch die einzelnen Scripts hanteln und nach möglichen Fehlern suchen.
Ein Blick in das Blog des Paket-Maintainers (und die Kommentare) auf http://www.kraftek.com/blog/ kann eventuell auch weiterhelfen.

3 Kommentare: