Installation: Difference between revisions
link to XDS backup site Tags: Mobile edit Mobile web edit Advanced mobile edit |
|||
| (11 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
This article has information that should ease the installation of XDS and related programs like ([[XDS-viewer]], [[xdsstat]], [[XDSGUI|xdsgui]]). | This article has information that should ease the installation of XDS and related programs like ([[XDS-viewer]], [[xdsstat]], [[XDSGUI|xdsgui]]). Generally, it is easiest if binaries (or links to binaries) 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). But it is mostly possible to install without administrative privileges - the exception is XDSGUI on Linux which may require installation of certain libraries by the administrator. | ||
| Line 6: | Line 6: | ||
=== [[XDS]] package === | === [[XDS]] package === | ||
If you are an academic user, as root (on Ubuntu, use "sudo -i" to become root) | If you are an academic user, as root (on Ubuntu, use "sudo -i" as a separate command, to become root): | ||
<pre> | <pre> | ||
cd /usr/local/bin | cd /usr/local/bin | ||
wget | wget -O- https://xds.mr.mpg.de/XDS-gfortran_Linux_x86_64.tar.gz | tar xzvf - | ||
ln -sf XDS-gfortran_Linux_x86_64/* . | ln -sf XDS-gfortran_Linux_x86_64/* . | ||
# until 2025-05-02 the XDS tarfile for Linux had a different name: | # until 2025-05-02 the XDS tarfile for Linux had a different name: | ||
| Line 15: | Line 15: | ||
# ln -sf XDS-INTEL64_Linux_x86_64/* . | # ln -sf XDS-INTEL64_Linux_x86_64/* . | ||
</pre> | </pre> | ||
In case the above website is unavailable, there is a [https://{{SERVERNAME}}/pub/xds backup site]. | In case the above website is unavailable, there is a [https://{{SERVERNAME}}/pub/xds/current backup site]. | ||
If you don't have root rights, replace /usr/local/bin by $HOME/bin in the first line above, and make sure that $HOME/bin is in your $PATH (google "linux set path" or similar). | |||
If you want to process data from the [[Eiger]] detector: see below for plugins that allow XDS to read the .h5 files. Similarly for gzip-ed CBF files as mostly collected at EMBL Hamburg. | If you want to process data from the [[Eiger]] detector: see below for plugins that allow XDS to read the .h5 files. Similarly for gzip-ed CBF files as mostly collected at EMBL Hamburg. | ||
==== System libraries that the XDS package needs ==== | |||
The programs of the XDS package depend on commonly installed libraries. The complete list, with paths and versions, can be obtained on the commandline: | |||
[kay@linux ~]$ ldd $(which xds_par) | |||
linux-vdso.so.1 (0x00007f96ab59d000) | |||
libdl.so.2 => /lib64/libdl.so.2 (0x00007f96ab57a000) | |||
libm.so.6 => /lib64/libm.so.6 (0x00007f96ab49f000) | |||
libgomp.so.1 => /lib64/libgomp.so.1 (0x00007f96ab459000) | |||
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f96ab43f000) | |||
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f96ab43a000) | |||
libc.so.6 => /lib64/libc.so.6 (0x00007f96ab200000) | |||
/lib64/ld-linux-x86-64.so.2 (0x00007f96ab59f000) | |||
If any of the libraries is not available, the affected program does not run but the operating system tells you which library is missing. Until recently, Linux distributions came with these libraries pre-installed. However, recently it came to my attention that a minimal version of Ubuntu 24 may not provide the libgomp.so library. If you run this distribution, your system administrator should install the libgomp1 package. | |||
=== other programs: [[XDS-Viewer]], [[XDSSTAT]], [[XDSCC12]], [[XDSGUI]], [[XSCALE_ISOCLUSTER]], [[spot2pdb]], [[generate_XDS.INP]] === | === other programs: [[XDS-Viewer]], [[XDSSTAT]], [[XDSCC12]], [[XDSGUI]], [[XSCALE_ISOCLUSTER]], [[spot2pdb]], [[generate_XDS.INP]] === | ||
... 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 | ... 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 | ||
wget | wget -N https://{{SERVERNAME}}/pub/linux_bin/get_folder.sh | ||
chmod +x get_folder.sh | chmod +x get_folder.sh | ||
./get_folder.sh | ./get_folder.sh | ||
| Line 27: | Line 42: | ||
As root, the script copies the programs into /usr/local/bin/linux_bin, and links them to /usr/local/bin. As a normal user, they are downloaded to $HOME/bin/linux_bin, and linked to your $HOME/bin. In the latter case, make sure that $HOME/bin is in your $PATH. | As root, the script copies the programs into /usr/local/bin/linux_bin, and links them to /usr/local/bin. As a normal user, they are downloaded to $HOME/bin/linux_bin, and linked to your $HOME/bin. In the latter case, make sure that $HOME/bin is in your $PATH. | ||
Although CCP4 is not required by XDS, XSCALE or XDSGUI, some of the programs (namely XDSSTAT, and MTZ file creation in XDSCONV) need its tools (F2MTZ, ...) or libraries, or run its programs (POINTLESS and COOT can be run from XDSGUI). Therefore, CCP4 should be installed. | |||
=== tools and helper programs for [[generate_XDS.INP]] and [[XDSGUI]], and libraries === | === tools and helper programs for [[generate_XDS.INP]] and [[XDSGUI]], and libraries === | ||
| Line 32: | Line 49: | ||
* 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. | * 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. | ||
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 (by root), you can check the xdsgui binary with | ||
ldd `which xdsgui` | grep found | ldd `which xdsgui` | grep found | ||
and that should show you the libraries it didn't find. Your friendly system administrator knows the specific commands to install those libraries. | and that should show you the libraries it '''didn't''' find. Your friendly system administrator knows the specific commands to install those libraries. | ||
N.B. this may list libpng15.so for the latest XDSGUI (compiled May 2023), but you can ignore that! | N.B. this may list libpng15.so for the latest XDSGUI (compiled May 2023), but you can ignore that! | ||
| Line 48: | Line 65: | ||
sudo apt-file update | sudo apt-file update | ||
On Ubuntu, XDSGUI may require <code>sudo apt install libxcb-xinerama0</code> | |||
On Ubuntu, | |||
<code>xxdiff</code> is likely available for your distribution - google for it, or try e.g. | <code>xxdiff</code> is likely available for your distribution - google for it, or try e.g. | ||
| Line 56: | Line 71: | ||
on RHEL6/CentOS6/SL6 systems, or | on RHEL6/CentOS6/SL6 systems, or | ||
apt install xxdiff | apt install xxdiff | ||
on Ubuntu. If Ubuntu | on Ubuntu. If Ubuntu doesn't find it, use the latest from http://archive.ubuntu.com/ubuntu/pool/universe/x/xxdiff/ | ||
An <code>xxdiff</code> binary that runs on CentOS7 (RHEL7, SL7) is provided by the <code>get_folder.sh</code> script. | An <code>xxdiff</code> binary that runs on CentOS7 (RHEL7, SL7) is provided by the <code>get_folder.sh</code> script. | ||
Alternatively, | Alternatively, [https://download.kde.org/stable/kdiff3/ kdiff3] may be installed, or other graphical comparison programs, like meld or tkdiff. vimdiff is also nice, and probably already installed. | ||
For [[Eiger]] data processing, a h5dump binary (version 1.10 req'd for HDF5 data from DLS) and <code>H5ToXDS</code> is installed by the <code>get_folder.sh</code> script into /usr/local/bin. If the script is not used, <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> (Ubuntu: <code>apt install hdf5-tools</code>) - but make sure that h5dump is version 1.10 or higher when processing HDF5 data from DLS. | For [[Eiger]] data processing, a h5dump binary (version 1.10 req'd for HDF5 data from DLS) and <code>H5ToXDS</code> is installed by the <code>get_folder.sh</code> script into /usr/local/bin. If the script is not used, <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> (Ubuntu: <code>apt install hdf5-tools</code>) - but make sure that h5dump is version 1.10 or higher when processing HDF5 data from DLS. | ||
| Line 73: | Line 88: | ||
sudo mkdir /usr/local/bin | sudo mkdir /usr/local/bin | ||
As an alternative that does not require root for installation, one may create a directory $HOME/bin and use that for the programs and links. Also, this requires modification of the $PATH, by a one-time | '''As an alternative that does not require root for installation''', one may create a directory $HOME/bin and use that for the programs and links. Also, this requires modification of the $PATH, by a one-time | ||
mkdir $HOME/bin | mkdir $HOME/bin | ||
echo 'export PATH=$PATH:$HOME/bin' >> ~/.zprofile | echo 'export PATH=$PATH:$HOME/bin' >> ~/.zprofile | ||
| Line 84: | Line 99: | ||
if [ ! -e /usr/local/bin ]; then mkdir /usr/local/bin; fi | if [ ! -e /usr/local/bin ]; then mkdir /usr/local/bin; fi | ||
cd /usr/local/bin | cd /usr/local/bin | ||
# if the next command produces an error message, use the --insecure option | |||
curl -L -o - https://xds.mr.mpg.de/XDS-OSX_64.tar.gz | tar xzvf - | curl -L -o - https://xds.mr.mpg.de/XDS-OSX_64.tar.gz | tar xzvf - | ||
ln -sf XDS-OSX_64/* . | ln -sf XDS-OSX_64/* . | ||
| Line 110: | Line 126: | ||
now enter the password, and then | now enter the password, and then | ||
if [ ! -e /usr/local/bin ]; then mkdir /usr/local/bin; fi | if [ ! -e /usr/local/bin ]; then mkdir /usr/local/bin; fi | ||
cd /usr/local/bin | cd /usr/local/bin | ||
curl -L -o - https://xds.mr.mpg.de/XDS-Apple_M1.tar.gz | tar xzvf - | # if the next command produces an error message, use the --insecure option | ||
ln -sf XDS-Apple_M1/* . | curl -L -o - https://xds.mr.mpg.de/XDS-Apple_M1.tar.gz | tar xzvf - | ||
ln -sf XDS-Apple_M1/* . | |||
exit | exit | ||
| Line 134: | Line 151: | ||
source $HOME/.profile | source $HOME/.profile | ||
# Added by CCP4 package manager: | # Added by CCP4 package manager: | ||
source '/Applications/ccp4-8.0/bin/ccp4.setup-sh' | |||
# or | # or | ||
source '/Applications/ccp4-9/bin/ccp4.setup-sh' | |||
</pre>If the file does not exist, create it - the easiest way is: | </pre>If the file does not exist, create it - the easiest way is: | ||
<pre> | <pre> | ||
echo | echo source /Applications/ccp4-8.0/bin/ccp4.setup-sh >> $HOME/.zprofile | ||
# or | # or | ||
echo | echo source /Applications/ccp4-9/bin/ccp4.setup-sh >> $HOME/.zprofile | ||
# depending on which CCP4 version you have installed | # depending on which CCP4 version you have installed | ||
</pre>The <code>get_folder.sh</code> script (below) checks the CCP4 setup, and creates the necessary files if needed. | </pre>The <code>get_folder.sh</code> script (below) checks the CCP4 setup, and creates the necessary files if needed. | ||
| Line 158: | Line 175: | ||
mkdir -p /usr/local/bin/mac_bin | mkdir -p /usr/local/bin/mac_bin | ||
cd /usr/local/bin/mac_bin | cd /usr/local/bin/mac_bin | ||
# if the next command produces an error message, use the --insecure option | |||
curl -O -R https://{{SERVERNAME}}/pub/mac_bin/get_folder.sh | curl -O -R https://{{SERVERNAME}}/pub/mac_bin/get_folder.sh | ||
chmod +x get_folder.sh | chmod +x get_folder.sh | ||
| Line 165: | Line 183: | ||
mkdir -p /usr/local/bin/mac_bin | mkdir -p /usr/local/bin/mac_bin | ||
cd /usr/local/bin/mac_bin | cd /usr/local/bin/mac_bin | ||
# if the next command produces an error message, use the --insecure option | |||
curl -O -R https://{{SERVERNAME}}/pub/mac_bin/get_folder_silicon.sh | curl -O -R https://{{SERVERNAME}}/pub/mac_bin/get_folder_silicon.sh | ||
chmod +x get_folder_silicon.sh | chmod +x get_folder_silicon.sh | ||
| Line 174: | Line 193: | ||
In order to enable [[Eiger]] data processing, the <code>get_folder.sh</code> (or <code>get_folder_silicon.sh</code>) script | In order to enable [[Eiger]] data processing, the <code>get_folder.sh</code> (or <code>get_folder_silicon.sh</code>) script | ||
# copies Dectris' Neggia library and DLS's Durin library into <code>/usr/local/lib64</code> . NOTE that the names of the native libraries for the Apple Silicon Macs ends with *-Apple-arm64.so | # copies Dectris' Neggia library and DLS's Durin library into <code>/usr/local/lib64</code> . NOTE that the names of the native libraries for the Apple Silicon Macs ends with *-Apple-arm64.so . | ||
# copies [https://www.globalphasing.com GlobalPhasing's] <code>hdf2mini-cbf</code> into <code>/usr/local/bin</code>, but under the name <code>H5ToXds</code> (consider getting a [https://www.globalphasing.com/autoproc/ autoPROC] license!) | # copies [https://www.globalphasing.com GlobalPhasing's] <code>hdf2mini-cbf</code> into <code>/usr/local/bin</code>, but under the name <code>H5ToXds</code> (consider getting a [https://www.globalphasing.com/autoproc/ autoPROC] license!) | ||
# copies <code>h5dump</code> [https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.12/hdf5-1.12.1/bin/unix/hdf5-1.12.1-Std-macos11_64-clang.tar.gz] into <code>/usr/local/bin</code> | # copies <code>h5dump</code> [https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.12/hdf5-1.12.1/bin/unix/hdf5-1.12.1-Std-macos11_64-clang.tar.gz] into <code>/usr/local/bin</code> | ||
For XDSGUI, you have a choice between the version for Intel Macs and that for Silicon Macs. Both do work on Silicon Macs, except for the plugin libraries - for these, the correct version (ending with -Apple-arm64.so) must be used together with xdsgui_mac_silicon. | For XDSGUI, you have a choice between the version for Intel Macs and that for Silicon Macs. Both do work on Silicon Macs, except for the plugin libraries - for these, the correct version (ending with -Apple-arm64.so) must be used together with xdsgui_mac_silicon. | ||
| Line 195: | Line 212: | ||
A quick way is also | A quick way is also | ||
which generate_XDS.INP xdsgui xds xds-viewer xdsstat | which generate_XDS.INP xdsgui xds xds-viewer xdsstat coot | ||
and this should return a line for each of the programs asked for. | and this should return a line for each of the programs asked for. | ||