Installation: Difference between revisions

From XDSwiki
Jump to navigation Jump to search
(35 intermediate revisions by 2 users not shown)
Line 1: Line 1:
This article has some little script snippets that should ease the installation of XDS and related programs ([[XDS-viewer]], [[xdsstat]], [[XDSGUI|xdsgui]]). It is assumed that binaries (or links to binaries) should go to /usr/local/bin .
This article has some little script snippets that should ease the installation of XDS and related programs like ([[XDS-viewer]], [[xdsstat]], [[XDSGUI|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).




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


To get the [[XDS]] package if you are an academic user,
=== [[XDS]] package ===
If you are an academic user, as root
<pre>
<pre>
  cd /usr/local/bin
  cd /usr/local/bin
Line 11: Line 12:
  ln -sf XDS-INTEL64_Linux_x86_64/* .
  ln -sf XDS-INTEL64_Linux_x86_64/* .
</pre>
</pre>
To get the script [[generate_XDS.INP]] from its XDSwiki article,
In case the [ftp://ftp.mpimf-heidelberg.mpg.de/pub/kabsch above site] is unavailable, there is a [https://strucbio.biologie.uni-konstanz.de/pub/xds backup site].
<pre>
 
cd /usr/local/bin
=== other programs: [[XDS-Viewer]], [[XDSSTAT]], [[XDSCC12]], [[XDSGUI]], [[XSCALE_ISOCLUSTER]]  ===
wget http://strucbio.biologie.uni-konstanz.de/xdswiki/index.php/generate_XDS.INP -O - | \
... can be downloaded from https://{{SERVERNAME}}/pub/linux_bin/ . A simple way to obtain them is to create an empty folder, "cd" to that folder and then (as root)
  sed -e s/\&nbsp\;/\ /g -e s/\&gt\;/\>/g -e s/\&lt\;/\</g -e s/amp\;//g -e s/\&quot\;/\"/g -e s/\&\#\1\6\0\;/\ /g | \
wget https://{{SERVERNAME}}/pub/linux_bin/get_folder.sh
  sed '/# end of generate_XDS.INP/,$d' | awk '/^#/,/rm -f tmp1 tmp2/' > generate_XDS.INP
  chmod +x get_folder.sh
  chmod +x generate_XDS.INP
./get_folder.sh
</pre>
You may repeat this, as root, every now and then, to update the programs.
Please note that to get the <code>strings</code> command, which is used by [[generate_XDS.INP]], on some Linux distributions (e.g. FC23) you need to install the <code>binutils</code> RPM package.


To get [[XDS-Viewer]],
=== tools and helper programs for [[generate_XDS.INP]] and [[XDSGUI]], and libraries ===
<pre>
* check and installation of Unix tools for [[generate_XDS.INP]] is shown at [[Generate_XDS.INP#Dependencies]]
cd /usr/local/bin
* helper programs for [[XDSGUI]] are listed and discussed at [[XDSGUI#Dependencies]]. Nota bene: XDSGUI needs [[generate_XDS.INP]] unless you already have a working XDS.INP.  
wget ftp://turn5.biologie.uni-konstanz.de/pub/xds-viewer-0.6.64bit -O xds-viewer
chmod a+x xds-viewer 
ln -sf xds-viewer xdsviewer
</pre>
To get [[XDSSTAT]],
<pre>
cd /usr/local/bin
wget ftp://turn5.biologie.uni-konstanz.de/pub/xdsstat-linux64.bz2 -O xdsstat.bz2
bunzip2 -f xdsstat.bz2
chmod a+x xdsstat
</pre>
To get [[XDSCC12]],
<pre>
cd /usr/local/bin
wget ftp://turn5.biologie.uni-konstanz.de/pub/xdscc12.rhel6.64 -O xdscc12
chmod a+x xdscc12
</pre>
To get [[XDSGUI]],
<pre>
cd /usr/local/bin
wget ftp://turn5.biologie.uni-konstanz.de/pub/xdsgui.rhel6.64 -O xdsgui
chmod a+x xdsgui
</pre>


Since XDSGUI depends on graphics packages that may need to be installed, you can check the xdsgui binary with
Since XDSGUI depends on graphics packages that may need to be installed, you can check the xdsgui binary with
  ldd `which xdsgui`
  ldd `which xdsgui` | grep found
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. <code>yum provides libXfixes.so.3</code> the output of which will tell you that this is in the libXfixes RPM.
and that should show you the libraries it it didn't find. Your friendly system administrator will then work out the specific commands to install those libraries.
Ubuntu 14 users: please read http://strucbio.biologie.uni-konstanz.de/xdswiki/index.php/XDSGUI#Installation if you have a problem with missing libmng2.


It is useful to install xxdiff or one of its alternatives (see below). The package is likely available for your distribution - google for it, or try e.g.
For RedHat-type distributions, that would typically be e.g.  
  yum -y install xxdiff
  yum provides libXfixes.so.3
on RHEL6/CentOS6/SL6 systems, or
the output of which will tell you that this is in the libXfixes RPM.  
apt-get install xxdiff
on Ubuntu.


On Centos7 (RHEL7, SL7) I went to http://rpmfind.net/linux/rpm2html/search.php?query=xxdiff and found that the Fedora 20 RPM can be installed using
If in the case of Ubuntu you don't know the name of the package that provides a certain library, the
yum install ftp://rpmfind.net/linux/fedora/linux/releases/20/Everything/x86_64/os/Packages/x/xxdiff-3.2-20.fc20.x86_64.rpm
  sudo apt-file search <name-of-library>
Perhaps xxdiff will be available on EPEL some day - maybe it is available on RPMforge; I didn't check.
command should find it for you (where <code><name-of-library></code> could e.g. be <code>libGLU.so.1</code>). This needs a one-time installation by
  sudo apt install apt-file
  sudo apt-file update


Alternatively, tkdiff may be installed, or other graphical comparison programs, like meld or kdiff3. vimdiff is also nice, and probably already installed.
Ubuntu 18.04: if libQtOpenGL.so.4 is missing, use <code>sudo apt install libqt4-opengl</code>.


For [[Eiger]] data processing, H5ToXDS should be installed as [[Eiger|explained]], and <code>h5dump</code> should be installed by e.g. <code>yum -y install hdf5</code>.
Ubuntu 20.04: if libQtOpenGL.so.4 is missing, use
sudo add-apt-repository -y ppa:rock-core/qt4
sudo apt update
sudo apt install libqt4-opengl
But it would be better to use the [https://strucbio.biologie.uni-konstanz.de/pub/linux_bin/xdsgui_qt5 Qt5 binary of XDSGUI].


=== current versions of programs outside the official distribution ===
<code>xxdiff</code> is likely available for your distribution - google for it, or try e.g.
... can be downloaded from ftp://turn5.biologie.uni-konstanz.de/pub/linux_bin/ . A simple way is
yum -y install xxdiff
wget -r ftp://turn5.biologie.uni-konstanz.de/pub/linux_bin/
on RHEL6/CentOS6/SL6 systems, or
apt install xxdiff
on Ubuntu. If Ubuntu 20.04 doesn't find it, use the latest from http://archive.ubuntu.com/ubuntu/pool/universe/x/xxdiff/


== Mac (Intel) ==
An <code>xxdiff</code> binary that runs on CentOS7 (RHEL7, SL7) is provided by the <code>get_folder.sh</code> script.


Attention: [[generate_XDS.INP]] requires [https://developer.apple.com/xcode/ Xcode] to be installed. '''Xcode''' is not installed by default, but can be downloaded free of charge from the Mac App Store: after installing Xcode, open '''Preferences''', select the '''Downloads''' tab, and click the '''Install''' next to '''Command Line Tools'''. Or: open a Terminal window and type <code>xcode-select --install</code>. This will bring up a prompt to install the necessary command line tools.
Alternatively, tkdiff may be installed, or other graphical comparison programs, like meld or kdiff3. vimdiff is also nice, and probably already installed.
 
You also have to explicitly agree to the License terms when running a Command Line Tool for the first time.
 
I'm not sure if Xcode can be installed without administrator privileges; you may also wish to look at http://guide.macports.org/#installing.xcode .
 
=== personal installation (experimental writeup) ===
 
'''Preparation''':
* make sure your $PATH includes your $HOME/bin - the programs will be put into that directory. To achieve this, open a Terminal window, and then
<pre>
cd $HOME
echo 'export PATH=$PATH:$HOME/bin' >> ~/.profile
</pre>
(I'm not sure if it should be .profile or .bashrc; I have seen it work with .profile but not with .bashrc on a Leopard system)
* create the $HOME/bin and $HOME/Applications directories. Still in the Terminal window, type
<pre>
mkdir $HOME/bin
mkdir $HOME/Applications
</pre>
'''To install [[generate_XDS.INP]]''':
<pre>
cd $HOME/bin
curl -L -o - http://strucbio.biologie.uni-konstanz.de/xdswiki/index.php/generate_XDS.INP | \
  sed -e s/\&nbsp\;/\ /g -e s/\&gt\;/\>/g -e s/\&lt\;/\</g -e s/amp\;//g -e s/\&quot\;/\"/g -e s/\&\#\1\6\0\;/\ /g | \
  sed '/# end of generate_XDS.INP/,$d' | awk '/^#/,/rm -f tmp1 tmp2/' > generate_XDS.INP
chmod +x generate_XDS.INP
</pre>
'''To install [[XDS]]''':
<pre>
cd $HOME/bin
curl -L -o - ftp://ftp.mpimf-heidelberg.mpg.de/pub/kabsch/XDS-OSX_64.tar.gz | tar xvf -
ln -sf XDS-OSX_64/* .
</pre>


'''To install [[XDS-Viewer]]''', click https://sourceforge.net/project/platformdownload.php?group_id=239755 , open up the downloaded XDS-Viewer.app by clicking, and then (once you see it in the Finder), go to the Terminal and
For [[Eiger]] data processing, <code>H5ToXDS</code> should be installed as [[Eiger|explained]], and <code>h5dump</code> should be installed by e.g. <code>yum -y install hdf5</code>. Furthermore, you want the [https://www.dectris.com/company/news/newsroom/news-details/process-eiger-data-with-xds-fast Neggia] library or the [https://github.com/DiamondLightSource/durin Durin plugin].
cp -pr /Volumes/XDS-Viewer/XDS-Viewer.app/ $HOME/Applications
ln -s $HOME/Applications/XDS-Viewer.app/Contents/MacOS/xds-viewer-bin $HOME/bin/xds-viewer
'''To install [[XDSSTAT]]''',
<pre>
cd $HOME/bin
curl -L -o xdsstat.bz2 ftp://turn5.biologie.uni-konstanz.de/pub/xdsstat-i386-mac.bz2
bunzip2 -f xdsstat.bz2
chmod a+x xdsstat
</pre>
'''To install [[XDSCC12]]''',
<pre>
cd $HOME/bin
curl -L -o xdscc12 ftp://turn5.biologie.uni-konstanz.de/pub/xdscc12-mac
chmod a+x xdscc12


</pre>
== Mac OSX ==
'''To install [[XDSGUI]]''', please download from ftp://turn5.biologie.uni-konstanz.de/pub/xdsgui.dmg, open up the downloaded xdsgui.app by clicking, and then (once you see it in the Finder), go to the Terminal and
cp -pr /Volumes/xdsgui/xdsgui.app/ $HOME/Applications
ln -s $HOME/Applications/xdsgui.app/Contents/MacOS/xdsgui $HOME/bin/xdsgui
Please also check [[XDSGUI#Installation]].


It is useful to install xxdiff from http://furius.ca/downloads/xxdiff/releases/macosx/xxdiff-4.0b1.osx.dmg (or newer). After downloading, open up the downloaded xxdiff.app by clicking, and then (once you see it in the Finder), go to the Terminal and
Attention: [[generate_XDS.INP]] requires the [https://developer.apple.com/download/more/ 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. <code>strings</code>) for the first time.
cp -pr /Volumes/xxdiff/xxdiff.app/ $HOME/Applications
ln -s $HOME/Applications/xxdiff.app/Contents/MacOS/xxdiff $HOME/bin/xxdiff


(the names of the files may not be entirely correct in these two lines)
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 <code>echo 'export PATH=$PATH:$HOME/bin' >> ~/.profile</code>)


=== system-wide installation (requires root permission) ===
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


To get [[generate_XDS.INP]]:
=== [[XDS]] package ===
<pre>
If you are an academic user,
cd /usr/local/bin
sudo sh -c 'curl -L -o - http://strucbio.biologie.uni-konstanz.de/xdswiki/index.php/generate_XDS.INP | \
  sed -e s/\&nbsp\;/\ /g -e s/\&gt\;/\>/g -e s/\&lt\;/\</g -e s/amp\;//g -e s/\&quot\;/\"/g -e s/\&\#\1\6\0\;/\ /g | \
  sed '/# end of generate_XDS.INP/,$d' | awk '/^#/,/rm -f tmp1 tmp2/' > generate_XDS.INP'
sudo chmod +x generate_XDS.INP
</pre>


To get [[XDS]]:
echo you may have to "sudo su" first, to obtain administrator permissions!
<pre>
  cd /usr/local/bin
  cd /usr/local/bin
  sudo sh -c 'curl -L -o - ftp://ftp.mpimf-heidelberg.mpg.de/pub/kabsch/XDS-OSX_64.tar.gz | tar xvf -'
  curl -L -o - ftp://ftp.mpimf-heidelberg.mpg.de/pub/kabsch/XDS-OSX_64.tar.gz | tar xzvf -
  sudo ln -sf XDS-OSX_64/* .
  ln -sf XDS-OSX_64/* .
</pre>


To get [[XDS-Viewer]], click https://sourceforge.net/project/platformdownload.php?group_id=239755 , install in the usual graphical way to your /Applications and then
Starting with macOS Catalina, you also need
  sudo ln -s /Applications/XDS-Viewer.app/Contents/MacOS/xds-viewer-bin /usr/local/bin/xds-viewer
  xattr -dr XDS-OSX_64/*
if you get a security error popup (google "xattr com.apple.quarantine catalina").
To get [[XDSSTAT]],
<pre>
cd /usr/local/bin
sudo curl -L -o xdsstat.bz2 ftp://turn5.biologie.uni-konstanz.de/pub/xdsstat-i386-mac.bz2
sudo bunzip2 -f xdsstat.bz2
sudo chmod a+x xdsstat
</pre>


To get [[XDSCC12]],
=== other programs: [[XDS-Viewer]], [[XDSSTAT]], [[XDSCC12]], [[XDSGUI]], [[XSCALE_ISOCLUSTER]] ===
<pre>
... can be downloaded from https://{{SERVERNAME}}/pub/mac_bin/ . A simple way to obtain them is is to open a Terminal, and type:
  cd /usr/local/bin
  sudo su
sudo curl -L -o xdscc12 ftp://turn5.biologie.uni-konstanz.de/pub/xdscc12-mac
which asks for the password and gives you administrator permissions. Then,
  sudo chmod a+x xdscc12
# any folder would do; here we use /usr/local/bin/mac_bin
</pre>
  mkdir -p /usr/local/bin/mac_bin
 
cd /usr/local/bin/mac_bin
To get [[XDSGUI]], please download from ftp://turn5.biologie.uni-konstanz.de/pub/xdsgui.dmg and then
  curl -O -R https://{{SERVERNAME}}/pub/mac_bin/get_folder.sh
  sudo ln -s /Applications/xdsgui.app/Contents/MacOS/xdsgui /usr/local/bin/xdsgui
chmod +x get_folder.sh
   
./get_folder.sh
Please also check [[XDSGUI#Installation]].
If you want to update the programs some time later, just run these commands again.


It is useful to install xxdiff from http://furius.ca/downloads/xxdiff/releases/macosx/
In order to enable [[Eiger]] data processing, the <code>get_folder.sh</code> script
# copies Dectris' Neggia library into /usr/local/lib64
# copies [[Eiger#General_aspects|eiger2cbf-osx]] into /usr/local/bin, but under the name <code>H5ToXds</code>
# copies [https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.8/hdf5-1.8.7/bin/mac-intel-x86_64/utilities/h5dump version 1.8.7] of <code>h5dump</code> into /usr/local/bin


For [[Eiger]] data processing, [[Eiger#General_aspects|eiger2cbf-osx]] should be sym-linked into a directory in your $PATH, but under the name H5ToXds, and <code>h5dump</code> should be installed from a .dmg file.
Lastly, it is useful (for e.g. XDSGUI) to install <code>xxdiff</code> from http://furius.ca/downloads/xxdiff/releases/macosx/


=== Troubleshooting ===
=== Troubleshooting ===
Line 209: Line 122:
== Windows ==
== Windows ==


The programs of the [[XDS]] package as well as [[XDSGUI]], [[XDSSTAT]], [[XDSCC12]] and so on may be run on 64bit Windows 10 within the [http://www.pcworld.com/article/3050473/windows/heres-how-windows-10s-ubuntu-based-bash-shell-will-actually-work.html 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.
The programs of the [[XDS]] package as well as [[XDSGUI]], [[XDSSTAT]], [[XDSCC12]] and so on may be run on 64bit Windows 10 within the [https://docs.microsoft.com/windows/wsl/install-win10 Linux Subsystem for Windows] (WSL). This (easily!) installs a Ubuntu environment, which supports the apt package manager, so in principle any software available for Ubuntu may be installed (or other distros, see [https://blogs.msdn.microsoft.com/commandline/2017/05/11/new-distros-coming-to-bashwsl-via-windows-store/]).
[https://blogs.msdn.microsoft.com/commandline/2017/04/11/windows-10-creators-update-whats-new-in-bashwsl-windows-console/ Windows 10 Creators Update] (CU) allows to install (or update to) Ubuntu 16.04 (or other distros, see [https://blogs.msdn.microsoft.com/commandline/2017/05/11/new-distros-coming-to-bashwsl-via-windows-store/]), and fixes many bugs.


Graphical Linux programs require installation of a X server like [https://sourceforge.net/projects/xming/files/latest/download Xming] or [https://sourceforge.net/projects/vcxsrv VcXsvr] on the Windows host. There are helpful writeups (e.g. [http://asria.pl/configure-graphic-and-sound-for-wsl-creators-update-for-ubuntu-16-04],[http://wsl-guide.org/en/latest/]). To use the X server, one has to say in the shell window
Graphical Linux programs require installation of a X server like [https://sourceforge.net/projects/xming/files/latest/download Xming] or [https://sourceforge.net/projects/vcxsrv VcXsvr] on the Windows host. There are helpful writeups (e.g. [http://wsl-guide.org/en/latest/]). To use the X server, one has to say in the shell window
  export DISPLAY=:0
  export DISPLAY=:0
before running the program. Running XDSGUI under WSL's Ubuntu 14.04 requires installation of a few packages with
before running the program. Running XDSGUI under WSL's Ubuntu may require installation of a few packages with e.g.
  sudo apt-get install libgomp1 libqtgui4
  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
(see [[XDSGUI#Libraries_and_software_that_the_program_depends_on|XDSGUI]] and above).
 
[[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  
  sudo apt-get install coreutils binutils gawk sed bc grep  
and if required, also install python and hdf5-tools.
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.
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.
Line 227: Line 139:


(Screenshot provided by Gustavo Lima)
(Screenshot provided by Gustavo Lima)
A detailed [https://strucbio.biologie.uni-konstanz.de/pub/xds%20%20prog%20installation%20in%20WSL%20(Lata%20Panicker).pdf writeup for Ubuntu 20.04 LTS] was provided by Dr Lata Panicker, SO(G), BARC, India.


== See also ==
== See also ==


[[Cluster Installation]]
[[Cluster Installation]]

Revision as of 18:20, 22 October 2020

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).


Linux

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- ftp://ftp.mpimf-heidelberg.mpg.de/pub/kabsch/XDS-INTEL64_Linux_x86_64.tar.gz | tar xzvf -
 ln -sf XDS-INTEL64_Linux_x86_64/* .

In case the above site is unavailable, there is a backup site.

other programs: XDS-Viewer, XDSSTAT, XDSCC12, XDSGUI, XSCALE_ISOCLUSTER

... can be downloaded from https://wiki.uni-konstanz.de/pub/linux_bin/ . A simple way to obtain them is to create an empty folder, "cd" to that folder and then (as root)

wget https://wiki.uni-konstanz.de/pub/linux_bin/get_folder.sh
chmod +x get_folder.sh
./get_folder.sh

You may repeat this, as root, every now and then, to update the programs.

tools and helper programs for generate_XDS.INP and XDSGUI, and libraries

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

ldd `which xdsgui` | grep found

and that should show you the libraries it it didn't find. Your friendly system administrator will then work out the specific commands to install those libraries.

For RedHat-type distributions, that would typically be e.g.

yum provides libXfixes.so.3

the output of which will tell you that this is in the libXfixes RPM.

If in the case of Ubuntu you don't know the name of the package that provides a certain library, the

 sudo apt-file search <name-of-library> 

command should find it for you (where <name-of-library> could e.g. be libGLU.so.1). This needs a one-time installation by

 sudo apt install apt-file
 sudo apt-file update

Ubuntu 18.04: if libQtOpenGL.so.4 is missing, use sudo apt install libqt4-opengl.

Ubuntu 20.04: if libQtOpenGL.so.4 is missing, use

sudo add-apt-repository -y ppa:rock-core/qt4
sudo apt update
sudo apt install libqt4-opengl

But it would be better to use the Qt5 binary of XDSGUI.

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 install xxdiff

on Ubuntu. If Ubuntu 20.04 doesn't find it, use the latest from http://archive.ubuntu.com/ubuntu/pool/universe/x/xxdiff/

An xxdiff binary that runs on CentOS7 (RHEL7, SL7) is provided by the get_folder.sh 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. Furthermore, you want the Neggia library or the Durin plugin.

Mac OSX

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 - ftp://ftp.mpimf-heidelberg.mpg.de/pub/kabsch/XDS-OSX_64.tar.gz | tar xzvf -
ln -sf XDS-OSX_64/* .

Starting with macOS Catalina, you also need

xattr -dr XDS-OSX_64/*

if you get a security error popup (google "xattr com.apple.quarantine catalina").

other programs: XDS-Viewer, XDSSTAT, XDSCC12, XDSGUI, XSCALE_ISOCLUSTER

... can be downloaded from https://wiki.uni-konstanz.de/pub/mac_bin/ . 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 https://wiki.uni-konstanz.de/pub/mac_bin/get_folder.sh
chmod +x get_folder.sh
./get_folder.sh

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

In order to enable Eiger data processing, the get_folder.sh 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 http://furius.ca/downloads/xxdiff/releases/macosx/

Troubleshooting

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/xdsgui.app/Contents/MacOS/xdsgui
ls -l /Applications/XDS-Viewer.app/Contents/MacOS/xds-viewer-bin 

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.

Windows

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 environment, which supports the apt package manager, so in principle any software available for Ubuntu may be installed (or other distros, see [1]).

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 may require installation of a few packages with e.g.

sudo apt-get install libgomp1 libqtgui4

(see XDSGUI and above).

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.

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)

A detailed writeup for Ubuntu 20.04 LTS was provided by Dr Lata Panicker, SO(G), BARC, India.

See also

Cluster Installation