From XDSwiki
Revision as of 17:27, 19 December 2019 by Karsten (talk | contribs)
Jump to navigation Jump to search

This article has some little script snippets that should ease the installation of XDS and related programs like (XDS-viewer, xdsstat, xdsgui). It is assumed that binaries (or links to binaries) should go to /usr/local/bin . This means that you should do this as the administrator (root), or have sudo rights (Mac, and some Linux distros).


Log in as root - we need write permission for /usr/local/bin .

XDS package

If you are an academic user, as root

 cd /usr/local/bin
 wget -O- | tar xzvf -
 ln -sf XDS-INTEL64_Linux_x86_64/* .


... can be downloaded from . A simple way to obtain them is to create an empty folder, "cd" to that folder and then (as root)

chmod +x

Please note that to get the strings command, which is used by generate_XDS.INP, on some Linux distributions (e.g. FC23) you need to install the binutils RPM package.

Since XDSGUI depends on graphics packages that may need to be installed, you can check the xdsgui binary with

ldd `which xdsgui`

and that should show you the libraries it found, and more importantly, those that it didn't find. Your friendly system administrator will then work out the specific commands to install those libraries; on RedHat-type distributions that would typically be e.g. yum provides the output of which will tell you that this is in the libXfixes RPM. Ubuntu 14 users: please read XDSGUI if you have a problem with missing libmng2. Ubuntu 16.04 and 18.04: if is missing, use sudo apt install libqt4-opengl.

Of course, this still requires installation of xxdiff (or alternative), and for .h5 data: HDF5 package, and H5ToXds and/or Neggia library.

xxdiff is likely available for your distribution - google for it, or try e.g.

yum -y install xxdiff

on RHEL6/CentOS6/SL6 systems, or

apt-get install xxdiff

on Ubuntu.

An xxdiff binary that runs on CentOS7 (RHEL7, SL7) is provided by the script.

Alternatively, tkdiff may be installed, or other graphical comparison programs, like meld or kdiff3. vimdiff is also nice, and probably already installed.

For Eiger data processing, H5ToXDS should be installed as explained, and h5dump should be installed by e.g. yum -y install hdf5.


Attention: generate_XDS.INP requires the Xcode command line tools to be installed (free of charge). In my experience, you have to explicitly agree to the License terms when running a Command Line Tool (e.g. strings) for the first time.

Become familiar with the concept and ways to run commands as "root" - google "mac osx become root". All the tasks that are run in a Terminal window require root privileges, since some of the programs and their links are written to /usr/local/bin. (As an alternative that does not require root, one may create a directory $HOME/bin and use that for the programs and links. That would also require modification of the $PATH, by a one-time echo 'export PATH=$PATH:$HOME/bin' >> ~/.profile)

So, prepare the following steps by opening the Terminal window, and then

sudo su                    # this will make you root, and ask for your password
mkdir /usr/local/bin  # only if /usr/local/bin was not created before

XDS package

If you are an academic user,

echo you may have to "sudo su" first, to obtain administrator permissions!
cd /usr/local/bin
curl -L -o - | tar xzvf -
ln -sf XDS-OSX_64/* .


... can be downloaded from . A simple way to obtain them is is to open a Terminal, and type:

sudo su

which asks for the password and gives you administrator permissions. Then,

# any folder would do; here we use /usr/local/bin/mac_bin
mkdir -p /usr/local/bin/mac_bin
cd /usr/local/bin/mac_bin
curl -O -R
chmod +x

If you want to update the programs some time later, just run these commands again.

In order to enable Eiger data processing, the script

  1. copies Dectris' Neggia library into /usr/local/lib64
  2. copies eiger2cbf-osx into /usr/local/bin, but under the name H5ToXds
  3. copies version 1.8.7 of h5dump into /usr/local/bin

Lastly, it is useful (for e.g. XDSGUI) to install xxdiff from


If any of the commands

ls -l /usr/local/bin/generate_XDS.INP
ls -l /usr/local/bin/xdsgui
ls -l /usr/local/bin/xds-viewer
# in the same way, check the other programs that should be used

returns a message like file or directory not found then this means that you do not have the symlink. But even if these commands do not return errors, you should also check the targets of the symlink:

ls -l /Applications/
ls -l /Applications/ 

Again, these commands should not return an error message. If they do, the programs are not installed in the location where the symlink points to. You'll have to either install the programs properly (in /Applications) or make the symlink point to the correct location.

A quick way is also

which generate_XDS.INP xdsgui xds xds-viewer xdsstat xdscc12

and this should return a line for each of the programs asked for.


The programs of the XDS package as well as XDSGUI, XDSSTAT, XDSCC12 and so on may be run on 64bit Windows 10 within the Linux Subsystem for Windows (WSL). This (easily!) installs a Ubuntu 14.04.5 LTS environment, which supports the apt package manager, so in principle any software available for Ubuntu may be installed. Windows 10 Creators Update (CU) allows to install (or update to) Ubuntu 16.04 (or other distros, see [1]), and fixes many bugs.

Graphical Linux programs require installation of a X server like Xming or VcXsvr on the Windows host. There are helpful writeups (e.g. [2]). To use the X server, one has to say in the shell window

export DISPLAY=:0

before running the program. Running XDSGUI under WSL's Ubuntu 14.04 requires installation of a few packages with

sudo apt-get install libgomp1 libqtgui4

and generate_XDS.INP requires a number of packages (some of which are only for specific detectors!); I'd start with

sudo apt-get install coreutils binutils gawk sed bc grep 

and if required, also install python and hdf5-tools.

The CU fixes many aspects of the interoperability between Windows and Linux, so is recommended. Without it, only single-processor xds runs smoothly, whereas the parallel xds_par stops with an error message.

XDSSTAT and the conversion to MTZ files by XDSCONV require a CCP4 installation accessible by WSL. In principle, CCP4 may be installed within WSL (have not tested this), or on the Windows host.

Xds win.PNG

(Screenshot provided by Gustavo Lima)

See also

Cluster Installation