Installation: Difference between revisions

4,867 bytes added ,  20 April 2021
m
(29 intermediate revisions by the same user not shown)
Line 1: Line 1:
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).
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).


Line 14: Line 15:
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].
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].


=== other programs: [[XDS-Viewer]], [[XDSSTAT]], [[XDSCC12]], [[XDSGUI]], [[XSCALE_ISOCLUSTER]], [[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 (as root)
... 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 https://{{SERVERNAME}}/pub/linux_bin/get_folder.sh
  wget https://{{SERVERNAME}}/pub/linux_bin/get_folder.sh
  chmod +x get_folder.sh
  chmod +x get_folder.sh
  ./get_folder.sh
  ./get_folder.sh
You may repeat this, as root, every now and then, to update the programs.
You may repeat this every now and then to update the programs.
 
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.
 
The Qt5 graphics library is now the default for xdsgui and xds-viewer. Qt4 versions are available as xdsgui.qt4 and xds-viewer.qt4, for old Linux distributions (and for use with x2goclient, which would otherwise need [https://wiki.x2go.org/doku.php/wiki:development:glx-xlib-workaround special action] for Qt5 binaries).


=== 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 41: Line 46:
Ubuntu 18.04: if libQtOpenGL.so.4 is missing, use <code>sudo apt install libqt4-opengl</code>.
Ubuntu 18.04: if libQtOpenGL.so.4 is missing, use <code>sudo apt install libqt4-opengl</code>.


Ubuntu 20.04: if libQtOpenGL.so.4 is missing, use
Ubuntu 20.04: if libQtOpenGL.so.4 is missing (for the Qt4 binary of [[XDSGUI]]), use
  sudo add-apt-repository -y ppa:rock-core/qt4
  sudo add-apt-repository -y ppa:rock-core/qt4
  sudo apt update
  sudo apt update
  sudo apt install libqt4-opengl
  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].
If the Qt5 libraries are missing, use <code>sudo apt install libqt5gui5 libqt5printsupport5 libqt5opengl5</code>.  
 
On CentOS7, this would be <code>yum -y install qt5-qtbase-gui qt5-qtbase</code> .


<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 57: Line 64:
Alternatively, tkdiff may be installed, or other graphical comparison programs, like meld or kdiff3. vimdiff is also nice, and probably already installed.
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, <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].
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> (Ubuntu: <code>apt install hdf5-tools</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].


== Mac OSX ==
== Mac OSX ==


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.
Attention: [[generate_XDS.INP]] requires the [https://developer.apple.com/download/more/ Xcode command line tools] to be installed (free of charge): open a Terminal window, and enter <code>sudo xcode-select --install</code>. You may have to explicitly agree to the License terms when running a Command Line Tool (e.g. <code>strings</code>) for the first time.


Become familiar with the concept and ways to run commands as "root" - google "mac osx become root". All the installation 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 for installation, 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>)
Become familiar with the concept and ways to run commands as "root" - google "mac osx become root". All the installation 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 for installation, 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>)
Line 81: Line 88:
if you get a security error popup (google "xattr com.apple.quarantine catalina").
if you get a security error popup (google "xattr com.apple.quarantine catalina").


=== other programs: [[XDS-Viewer]], [[XDSSTAT]], [[XDSCC12]], [[XDSGUI]], [[XSCALE_ISOCLUSTER]]  ===
=== other programs: [[XDS-viewer]], [[XDSSTAT]], [[XDSCC12]], [[XDSGUI]], [[XSCALE_ISOCLUSTER]], [[generate_XDS.INP]]  ===
... can be downloaded from https://{{SERVERNAME}}/pub/mac_bin/ . A simple way to obtain them is is to open a Terminal, and type:
... can be downloaded from https://{{SERVERNAME}}/pub/mac_bin/ . A simple way to obtain them is is to open a Terminal, and type:
  sudo su
  sudo su
Line 95: Line 102:
In order to enable [[Eiger]] data processing, the <code>get_folder.sh</code> script  
In order to enable [[Eiger]] data processing, the <code>get_folder.sh</code> script  
# copies Dectris' Neggia library into /usr/local/lib64
# 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 [[Eiger#General_aspects|eiger2cbf-osx]] into /usr/local/bin, but under the name <code>H5ToXds</code> ([https://www.globalphasing.com GlobalPhasing's] hdf2mini-cbf would be preferable but needs [https://www.globalphasing.com/autoproc/ autoPROC] license)
# 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  
# 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 (a 1.10 version is required for Eiger data from DLS)


Lastly, it is useful (for e.g. XDSGUI) to install <code>xxdiff</code> from http://furius.ca/downloads/xxdiff/releases/macosx/
A [https://{{SERVERNAME}}/pub/mac_bin/XDS-Viewer-macOS10.13.dmg 10.13] Qt5 version of XDS-viewer (compiled by T. Hauß) works on macOS Catalina, and is installed by <code>get_folder.sh</code>. Older Macs need [https://{{SERVERNAME}}/pub/mac_bin/XDS-Viewer-0.6 this version]; newer macOS should install [https://{{SERVERNAME}}/pub/mac_bin/XDS-Viewer-macOS10.15.dmg 10.15]. For XDSGUI, the [https://{{SERVERNAME}}/pub/mac_bin/xdsgui_qt4.dmg Qt4 version] is still the default, but a [https://{{SERVERNAME}}/pub/mac_bin/xdsgui_qt5.dmg Qt5 version] is available.
 
Lastly, it is useful (for e.g. XDSGUI) to install <code>xxdiff</code> from http://furius.ca/downloads/xxdiff/releases/macosx/ .


=== Troubleshooting ===
=== Troubleshooting ===
Line 109: Line 118:
# in the same way, check the other programs that should be used
# in the same way, check the other programs that should be used
</pre>  
</pre>  
returns a message like <code>file or directory not found</code> 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:
returns a message like <code>file or directory not found</code> 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, as shown in the output of the <code>ls -l</code> commands.
<pre>
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 install the programs properly (in /Applications) and make the symlink point to the correct location.
ls -l /Applications/xdsgui.app/Contents/MacOS/xdsgui
ls -l /Applications/XDS-Viewer.app/Contents/MacOS/xds-viewer-bin
</pre>
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
A quick way is also
Line 122: Line 127:
== 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 [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/]).
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, or preferably WSL2). This (easily!) installs e.g. an [https://ubuntu.com/wsl 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/]).
 
A lot of technical detail is at [https://docs.microsoft.com/en-us/windows/wsl/compare-versions] .


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
CCP4 supports WSL-1 ; see info at http://www.ccp4.ac.uk/download/#os=wsl .
 
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] or [https://mobaxterm.mobatek.net/ Mobaxterm] on the Windows host. There are helpful writeups (e.g. [https://wiki.ubuntu.com/WSL#Running_Graphical_Applications] and [http://wsl-guide.org/en/latest/]). VcXsrc seems to have a problem with coot for some people (see [https://www.jiscmail.ac.uk/cgi-bin/wa-jisc.exe?A2=COOT;6ef4a967.2011 WSL2 installation] and responses). To use the X server with WSL, one has to say in the shell window
  export DISPLAY=:0
  export DISPLAY=:0
before running the program. Running XDSGUI under WSL's Ubuntu may require installation of a few packages with e.g.
before running the program. Running XDSGUI under WSL's Ubuntu may require installation of a few packages with e.g.
Line 141: Line 150:


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.
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.
=== WSL2 ===
I got CCP4 7.1 including coot-0.9.3 to work on Ubuntu 20.04 LTS with Xming but not with VcXsrc. Getting the Xserver to work properly requires addition of 3 lines in ~/.bashrc :
export DISPLAY=$(grep -m 1 nameserver /etc/resolv.conf | awk '{print $2}'):0.0                                         
# (David Waterman) if the above does not work, use: export DISPLAY=$(ip route|awk '/^default/{print $3}'):0.0                                         
export LIBGL_ALWAYS_INDIRECT=1                                                                                         
source /opt/xtal/ccp4-7.1/bin/ccp4.setup-sh
and creating a file (replace MYUSERNAME with your Windows username)
cd /mnt/c/Users/MYUSERNAME/
echo "[wsl2]" > .wslconfig
echo "kernelCommandLine = vsyscall=emulate" >> .wslconfig
to make the shelx* programs happy (see https://github.com/microsoft/WSL/issues/4694 ), and "vsyscall=emulate" appear in /proc/cmdline. After creating the file, WSL must be restarted with "wsl.exe --shutdown" (or the machine booted).
A few libraries also needed installation (tcsh is needed by CCP4, the others are graphics libraries):
sudo apt install tcsh libqt5opengl5 libqt5printsupport5 libqt5gui5 libxcb-render0 libxcb-shm0 libglu1-mesa
In addition, the Xming Xlaunch needed a box checked that prevents access control; and the Windows firewall needed a rule for port 6000 as shown in https://stackoverflow.com/questions/61110603/how-to-set-up-working-x11-forwarding-on-wsl2 .
It seems that XLaunch has to be started before the Ubuntu terminal in which I start the graphical application.
Performance of coot is good enough for me (100 frames/sec for "Spin view" of a thaumatin molecule, on a Dell XPS13 7390 2-in-1 notebook). XDSGUI and multi-threaded XDS work as expected. For reading .h5 files, the NEGGIA plugin works correctly, but the DURIN plugin currently crashes (a [https://github.com/DiamondLightSource/durin/issues/22 bug] has been reported).
Update concerning coot 0.9.5: it crashes for me when using XMing. Other applications, like ccp4i, still work. The error message is:
(set-display-intro-string "Good afternoon ,,,. Welcome to Coot 0.9.5")
(set-display-lists-for-maps 1)
coot-bin: Fatal IO error 11 (Resource temporarily unavailable) on X server 172.17.112.1:0.0.
coot-bin: Fatal IO error 11 (Resource temporarily unavailable) on X server 172.17.112.1:0.0.
. ------ Coot crashed - trying to diagnose -----
ldd -r on guile gives:
        linux-vdso.so.1 (0x00007fffd4f93000)
        libguile.so.17 => /opt/xtal/ccp4-7.1/libexec/../lib/libguile.so.17 (0x00007f7c5df33000)
        libgmp.so.10 => /opt/xtal/ccp4-7.1/libexec/../lib/libgmp.so.10 (0x00007f7c5dcb2000)
and more lines with library names that exist on the disk.
'''I tried MobaXterm (private edition) and this works better - coot runs!'''


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


[[Cluster Installation]]
[[Cluster Installation]]
2,684

edits