Centos 7.x standard installation

Analysis 2.4.x

I prefer to install from source code, because this should always work once you've got it started. I also prefer to use the system libraries (because that should be the right thing to do) rather than tacking on alternative versions of software which can complicate installation and the operation of other programs. I've not yet had serious problems with this methodology. Since CentOS 6, the system Python and Tk libraries have been up to date enough that analysis runs well.

Make sure you have the necessary software and development libraries installed (you'll have chosen to install the compilers already).

 yum install python-devel freeglut-devel tcl-devel tk-devel tkinter libX11-devel libXext-devel numpy

Go to where you want to install ccpnmr and unpack

Then for analysis 2.4.x the installation script requires the following responses.

# cd /usr/local

# tar xzvf <path>/analysis<version>.tgz

Then for analysis 2.4.x the installation script requires the following responses.

# cd ccpnmr

# python installCode.py

Messages will be logged in "log_Analysis_3.txt"

Assuming your platform is linux

Are you using 64 bit libraries? (answer n unless you know otherwise) (y or n))? y

Found X11 include match: /usr/include/X11/Xlib.h

Found X11 lib match: /usr/lib64/libX11.so

Need to know where X11 directory is, in order to compile Analysis

This directory should contain [include/*/X11/Xlib.h, lib*/*/libX11.*], and as seen, /usr does

Guess X11 dir = "/usr", is this correct (y or n)? y

CCPN Tcl gzipped tar file not found, assuming using existing Tcl

Found Tcl include match: /usr/include/tcl.h

Found Tcl lib match: /usr/lib64/tclConfig.sh

Need to know where Tcl directory is, in order to compile Analysis

This directory should contain [include/*/tcl.h, lib*/*/tclConfig.sh], and as seen, /usr does

Guess Tcl dir = "/usr", is this correct (y or n)? y

Guess Tcl version = 8.5 (by looking), is this ok (y or n) (reply y unless sure otherwise)? y

CCPN Tk gzipped tar file not found, assuming using existing Tk

Found Tk include match: /usr/include/tk.h

Found Tk lib match: /usr/lib64/tkConfig.sh

Need to know where Tk directory is, in order to compile Analysis

This directory should contain [include/*/tk.h, lib*/*/tkConfig.sh], and as seen, /usr does

Guess Tk dir = "/usr", is this correct (y or n)? y

Assuming Tk version is also 8.5

CCPN Python gzipped tar file not found, assuming using existing Python

Found Python include match: /usr/include/python2.7

Found Python lib match: /usr/lib64/python2.7

Need to know where Python directory is, in order to compile Analysis

This directory should contain [include/*/python2.*, lib*/*/python2.*], and as seen, /usr does

Guess Python dir = "/usr", is this correct (y or n)? y

Guess Python version = 2.7 (by looking), is this ok (y or n) (reply y unless sure otherwise)? y

Do you want OpenGL used in Analysis (y or n) (n means only get Tk)? y

CCPN Mesa gzipped tar files not found, assuming using existing Mesa or alternative OpenGL

Found OpenGL include match: /usr/include/GL/gl.h

Found OpenGL lib match: /usr/lib64/libGL.so.1

Need to know where OpenGL directory is, in order to compile Analysis

This directory should contain [include/*/GL/gl.h, lib*/*/libGL.*], and as seen, /usr does

Guess OpenGL dir = "/usr", is this correct (y or n)? y

Found glut include match: /usr/include/GL/glut.h

Found glut lib match: /usr/lib64/libGL.so.1

Compile and install Analysis code (y or n)? y

You can create environment file from scratch (this does not copy it from environment_default.txt)

If you have already created it and edited it by hand you probably do not want to create it again here.

Create environment file (y or n) (answer y unless you know otherwise)? y

Does your glut need explicit initialisation (OSX and freeglut probably y, ordinary glut probably n) (y or n)? y

Use -fPIC compiler flag (y or n) (if gcc compiler y, otherwise n; answer y unless you know otherwise)? y

Use OPENMP compiler flags (y or n) (if gcc compiler >= 4.3 y, otherwise n; answer n unless you know otherwise; y allows Bayes peak separator code to use multi-processors)? y

...lots of compiler messages.....

Do you want to create a bin directory (answer y unless you know otherwise) (y or n)? y

Creating the bin directory

Install latest updates (from server) (y or n)? y

Getting latest updates from server

...updates downloaded...

Run Analysis (as test) (y or n)? y

...various messages...main analysis control bar appears...

>>> Finished installation script

Your executables are in /usr/local/ccpnmr/bin so you will want to make sure that this is on your path. I do this by adding files to /etc/profile.d as follows

# cat ccpnmr.csh

setenv CCPNMR_TOP_DIR /usr/local/ccpnmr

set path = ( $path $CCPNMR_TOP_DIR/bin )

# cat ccpnmr.sh

export CCPNMR_TOP_DIR=/usr/local/ccpnmr

export PATH=$PATH:$CCPNMR_TOP_DIR/bin

ARIA 2.3.1

This is simple on CentOS 7. First download the aria2.3.1 source code from http://aria.pasteur.fr You have to register and sign in to get access.

Unpack aria and check your environment (assuming you're root using bash)

export CCPNMR_TOP_DIR=/usr/local/ccpnmr

export PYTHONPATH=.:/usr/local/ccpnmr/ccpnmr2.4/python

yum install tix-devel python-matplotlib

cd /usr/local

tar xzvf <path>aria2.3.1.tgz

cd aria2.3

python check.py

if all is well then copy in the CCPNMR aria-compatibility patches

cd src/py/aria/

wget http://www.ccpn.ac.uk/v2-software/downloads/aria-compatibility-patches/importFromCcpn.py

wget http://www.ccpn.ac.uk/v2-software/downloads/aria-compatibility-patches/exportToCcpn.py

mv importFromCcpn.py.1 importFromCcpn.py

mv exportToCcpn.py.1 exportToCcpn.py

Make an /etc/profile.d/aria2.3.csh script like

if ((-e /usr/local/aria2.3)) then

  setenv ARIA2 /usr/local/aria2.3

  if ($?PYTHONPATH) then

    setenv PYTHONPATH {$PYTHONPATH}:/usr/local/ccpnmr/ccpnmr2.4/python

  else

    setenv PYTHONPATH .:/usr/local/ccpnmr/ccpnmr2.4/python

  endif

  alias aria2 /bin/python -O ${ARIA2}/aria2.py

endif

Now set up and recompile your ARIA-enabled CNS

cd /usr/local tar xzvf <path>cns_solve_1.21_all-mp.tar.gz

mv cns_solve_1.21/ cns_solve_1.21_aria2.3/

cd cns_solve_1.21_aria2.3

edit cns_solve_env to set the CNS_SOLVE directory (/usr/local/cns_solve_1.21_aria2.3). Copy the aria2.3/cns/src files to the source directory in the cns distribution.

cp -rf ../aria2.3/cns/src/* source/

At some point many fortran compilers started to fail to generate the correct code for the SETFPEPS subroutine in CNS. To address this edit source/machvar.f and replace the subroutine with the following

C ======================================================

C SUBROUTINE SETFPEPS

C IMPLICIT NONE

C I/O

      INCLUDE 'numbers.inc'

      INCLUDE 'machvar.inc'

C

C Determine the machine epsilon i.e. the smallest FPEPS such that both

C 1+FPEPS and 1-FPEPS are different from 1.

C

C local

      DOUBLE PRECISION ONEDP

      DOUBLE COMPLEX DBCOMP

C

C external

C     NONE

C

C begin

C

C ONEDP doesn't really need to be defined - EPSILON() only needs to know

C the type

      ONEDP=(1.00)

      FPEPS = EPSILON(ONEDP)

      DBCOMP = DCMPLX(ZERO,ZERO)

      CALL DECLAR('FP_EPSILON', 'DP', ' ', DBCOMP, FPEPS)

      RETURN

      END

C========================================================

Now install flex-devel for libfl, switch to csh and build

 yum install flex-devel

 csh

 source cns_solve_env

 cp -rf ../aria2.3/cns/src/* source/

 make install

Note that ARIA 2.3.1 still has some fossil bugs/issues lurking in the code. For example: