I recently installed FreeNX. It's a very fast remote-desktop server – like VNC or Remote Desktop, only much faster over slow connections.
All was well until I tried running Emacs inside a FreeNX session. Emacs refused to start, complaining:
Undefined color: "black".
It turned out that FreeNX's nxagent program has the path to X's rgb.txt file hardcoded inside itself:
$ strings /usr/lib/nx/nxagent | grep /rgb
/usr/X11R6/lib/X11/rgb
Whereas the real location of rgb.txt is /etc/X11/rgb.txt. I worked around this by making a symlink:
sudo ln -s /etc/X11/rgb.txt /usr/X11R6/lib/X11/
Then when FreeNX looks in /usr/X11R6/lib/X11 for rgb.txt, it can find it, and Emacs is able to start up.