I
have read so many posts on users having troubles installing the Seveas
packages in Gutsy with a mild crippling of the program (unable to run
KDE or Gnome desktops on AMD64) necessary to make it work. Or having to
chase down some outdated client that is only available on remote sites
and isn't 64bit ready. Also, I have become tired of Linux being
consistently behind the ball game on the latest and greatest
technology. Namely NX 3.0 protocol compression which is now 64bit
ready, so in frustration I modded the
FreeNX Debian packages to arrive on a solution that works on Gutsy extremely well using
FreeNX
0.7.1. All other mods I've heard of need either an outdated client and
server or require someone with sysadmin level knowhow to install and
setup. The following is a guide to install and setup the Gutsy packages
that I have compiled for everyone's convenience.
ATTENTION: These are GUTSY packages and I DO NOT GUARANTEE any
usability especially on any other distribution prior to Gutsy. If
someone would like to debuild packages for other debian versions I have
also posted the sources here that I have used to make these packages as
well as compilation instructions. My only request is that you make them
available to me so that I may make them available to the community.
WARNING: All packages and files below are open-source and free
according to the GPL license EXCEPT the nxclient-3.0.0 ones. This is
the commercial nxclient, but it is still free to download and use
according to the licensing on their site at
www.nomachine.com.
I have chosen the version below because it has been tested to work with
these packages, you may use a newer one, but your mileage may vary. Do
not bother to post about a newer version failing, as it has not been
tested, it may not work so use the version supplied.
For those having troubles with the new nxclient 3.1.0 for Windows, here is a link to a compatible nxclient 3.0.0-83:
nxclient-3.0.0-83.exe
This is the recommended nxclient for Windows. I have tested this version and it definitely works well.
First add the following lines to your sources.list:
deb
http://www.datakeylive.com/ubuntu gutsy main
deb-src
http://www.datakeylive.com/ubuntu gutsy main
Then add my key for authentication and update you package list:
Code:
wget http://www.datakeylive.com/ubuntu/dists/gutsy/wjeremy.key -O - | sudo apt-key add -
wget http://www.datakeylive.com/ubuntu/dists/gutsy/alivesoftware.key -O - | sudo apt-key add -
sudo apt-get update
Then install necessary packages:
Code:
sudo apt-get install expect openssh-server tcl8.4 libxcomp2 libxcompext2 libxcompshad nxlibs nxagent nxproxy nxclient freenx
(I'm not sure what other libs are necessary as I have them all
installed already, but you MUST have a desktop (X minimal, KDE, or
Gnome) installed,
please let me know if I'm missing anything.)
Please verify the above operation was successful by executing:
Code:
sudo apt-get -f install
sudo apt-cache show expect openssh-server tcl8.4 libxcomp2 libxcompext2 libxcompshad nxlibs nxagent nxproxy nxclient freenx | grep "Unable"
If the previous command says unable to find .... (with a package name) you need to install that package first.
Otherwise it should just drop you back to the command prompt.
If you installed the files above you can skip this next section for compiling from source...
For those brave souls willing to compile from source first I will present the quick and dirty method (for Debian based ONLY):
Make sure you added the above package repository, then execute:
Code:
sudo apt-get install expect openssh-server tcl8.4 build-essentials cdbs autotools-dev debhelper patchutils autoconf automake1.9 bzip2 libjpeg-dev libpng12-dev libssl-dev libx11-dev libxaw7-dev xutils zlib1g-dev apt-build nxclient
Then execute:
Code:
sudo apt-build install libxcomp2 libxcompext2 libxcompshad nxlibs nxagent nxproxy freenx
Alternatively download these and try to build them yourself (I do not provide non-debian support):
nx_3.0.0.orig.tar.gz
nx_3.0.0-0.diff.gz
freenx_0.7.1.orig.tar.gz
freenx_0.7.1-0.diff.gz
verify that all of the above packages are installed correctly by first executing:
Code:
sudo apt-get -f install
sudo apt-cache show libxcomp2 libxcompext2 libxcompshad nxagent nxlibs nxproxy nxclient freenx | grep "Unable"
If the previous command says unable to find .... (with a package
name) you need to reinstall that package again or restart the build
process since something didn't work.
Otherwise it should just drop you back to the command prompt.
(CONTINUING FROM PACKAGE CHOICE)
Drop to a console or use your favorite editor to edit /etc/nxserver/node.conf as root
eg.:
Code:
sudo nano /etc/nxserver/node.conf
Inspect the line that reads:
AGENT_EXTRA_OPTIONS_X="-fp (lots of font paths)"
Now open /etc/X11/xorg.conf and compare the font paths in there. My section looks like:
Code:
Section "Files"
# path to defoma fonts
FontPath "/usr/share/fonts/X11/misc"
FontPath "/usr/share/fonts/X11/100dpi/:unscaled"
FontPath "/usr/share/fonts/X11/75dpi/:unscaled"
FontPath "/usr/share/fonts/X11/Type1"
FontPath "/usr/share/fonts/X11/100dpi"
FontPath "/usr/share/fonts/X11/75dpi"
FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
EndSection
If you are missing this section from your xorg.conf configuration file I recommend adding it as without this
FreeNX will die unexpectedly.
Once you are done checking make sure you update the -fp line above to include the font paths separated by commas.
Finally download the nxcupsd-wrapper script from Fabian to the client
machine (the one that needs to connect) and save it somewhere that you
can use it:
nxcupsd-wrapper
Change the permissions on the CUPS backend to allow access to the nxclient and
make nxcupsd-wrapper executable by executing this in the directory where you saved it:
Code:
chmod a+x nxcupsd-wrapper
sudo chmod 755 /usr/lib/cups/backend/ipp
When you setup connections make sure to change the path of the
cupsd server to the nxcupsd-wrapper path. This is only necessary if you
want to print to local printers.
Now if you want someone to log into the server you need to make their
account ready for log in. At a conole prompt execute where xxxx is the
name of the user you want to log in:
Code:
sudo nxserver --adduser xxxx
This should setup the user for you automatically.
If you want to be able to proxy and tunnel RDP (Windows Remote Desktop/Terminal Services) you need to install rdesktop.
From a console type:
Code:
sudo apt-get install rdesktop
rdesktop is the RDP client that
FreeNX
uses to proxy RDP through the NX protocol. I have found proxying RDP
slightly more laggy on broadband, but it scales better and is much
faster over slower connections.
You should now be able to test this now by creating a connection to
localhost using nxclient. I have disabled the mirroring and VNC proxy
by default since it creates an X0 phantom connection and the X0
connection uses a VNC proxy to the physical desktop that does not work
currently, instead you must always choose a new connection. Thus,
disabling for now is the best option. If you want to log in from
remote, remember that you NEED version 3.0 of nxclient NO PRIOR VERSION
WILL WORK! If you need a Windows version it is posted above. Also,
remember to open port 22 (or whatever port you want to redirect to it)
in your router and firewalls!
Another little trick, if you need to get through a firewall at work, it
can be done by making port 21 or port 80 the new SSH port or tunneling
via some tunneling client, but make sure you do not have some other
program using those ports first.
That should be all that you need. There are many other commands that
you can execute on nxserver just use --help. Please post with your
experiences!