Thank you so much Uli, that fixed it!

I'd be happy to report further if there's anything that I can look up as to why the link might have been missing.

I don't know if it will be of general/debugging interest, however, because my workstation's yum is not the most healthy state:  I've followed some bad advice from dodgy internet "how tos" in the past, e.g. installing a kernel beyond the level supported by CentOS, which I've backtracked from. Each kernel change requires reinstalling Nvidia drivers.

Currently, yum update generates the following errors, which might be related:

yum update
Loaded plugins: fastestmirror, langpacks, versionlock
Loading mirror speeds from cached hostfile
 * base: reflector.westga.edu
 * elrepo: reflector.westga.edu
 * epel: mirror.team-cymru.com
 * extras: centos.mirrors.tds.net
 * nux-dextop: mirror.li.nux.ro
 * updates: centos.servint.com
Resolving Dependencies
--> Running transaction check
---> Package xorg-x11-drv-nvidia.x86_64 1:352.99-1.el7 will be updated
---> Package xorg-x11-drv-nvidia.x86_64 1:396.44-1.el7 will be an update
--> Processing Dependency: nvidia-kmod >= 1:396.44 for package: 1:xorg-x11-drv-nvidia-396.44-1.el7.x86_64
---> Package xorg-x11-drv-nvidia-devel.x86_64 1:352.99-1.el7 will be updated
---> Package xorg-x11-drv-nvidia-devel.x86_64 1:396.44-1.el7 will be an update
---> Package xorg-x11-drv-nvidia-gl.x86_64 1:352.99-1.el7 will be updated
---> Package xorg-x11-drv-nvidia-gl.x86_64 1:396.44-1.el7 will be an update
---> Package xorg-x11-drv-nvidia-libs.x86_64 1:352.99-1.el7 will be updated
---> Package xorg-x11-drv-nvidia-libs.x86_64 1:396.44-1.el7 will be an update
--> Finished Dependency Resolution
Error: Package: 1:xorg-x11-drv-nvidia-396.44-1.el7.x86_64 (cuda)
           Requires: nvidia-kmod >= 1:396.44
           Installed: 1:nvidia-kmod-352.99-2.el7.x86_64 (@cuda)
               nvidia-kmod = 1:352.99-2.el7
           Available: kmod-nvidia-390.67-1.el7_5.elrepo.x86_64 (elrepo)
               nvidia-kmod = 390.67-1.el7_5.elrepo
           Available: kmod-nvidia-390.77-1.el7_5.elrepo.x86_64 (elrepo)
               nvidia-kmod = 390.77-1.el7_5.elrepo
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest


Thanks again, best, A.



On Mon, Aug 20, 2018 at 1:43 PM, Ulrich Sibiller <uli42@gmx.de> wrote:
On Mon, Aug 20, 2018 at 8:17 PM, Alec Bayo <alec.bayo@gmail.com> wrote:
> Thanks for the reply Uli. Pasted output below
>
> Also, I was scratching my head some more after sending the previous email.
> Would I run the two lines below to add these links manually? Or should I do
> something more/else?
>
> ln -s /usr/lib64/libNX_X11.so.6     /usr/lib64/nx/X11/libX11.so.6
> ln -s /usr/lib64/libNX_X11.so.6.3.0 /usr/lib64/nx/X11/libX11.so.6.3.0

No, this would just be wrong!


> $ ldd /usr/bin/nxagent
> linux-vdso.so.1 =>  (0x00007ffe21fc2000)
> libtirpc.so.1 => /lib64/libtirpc.so.1 (0x00007fa9d1cd4000)
> libX11.so.6 => /lib64/libX11.so.6 (0x00007fa9d1995000)
...
> libNX_X11.so.6 => /lib64/libNX_X11.so.6 (0x00007fa9d04c9000)

An here's the problem. You should never see both libs in the ldd
output. NX brings libNX_X11 but does not directly require it
(linker-wise). Instead it requires a libX11.so.6. There must be a link
in an NX related dir (I don't know the exact path on CentOS/RHEL and
cannot look that up atm). That link must be named libX11.so.6 and
point to libNX_X11.so.6.

It is a trick that is required to ensure the other X11 libs (that are
required by NX) who require a libX11.so.6 themselves use the NX
variant of the lib instead of the one from the system (which would
break NX).

Now try objdump -x /usr/bin/nxagent. Grep for RUNPATH in the output
and you will find the directory where to put the missing link. In that
directory run

ln -s /lib64/libNX_X11.so.6 libX11.so.6

This should fix it.

It would be interesting to know the reason for the missing link.

Uli