6
edits
mNo edit summary |
|||
(15 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
Return to [[coot]] | |||
These instructions are current as of coot release 0.5. | |||
The following is specific to Ubuntu linux, but should be generalizable to any recent linux distribution. | The following is specific to Ubuntu linux, but should be generalizable to any recent linux distribution. | ||
This is a so-called "advanced" task. Don't attempt it unless you would rather compile your own software than use pre-compiled versions. The standard (supported) method for installing Coot is to download a pre-compiled binary, or to use the autobuild scripts | '''This is a so-called "advanced" task. Don't attempt it unless you would rather compile your own software than use pre-compiled versions. The standard (supported) method for installing Coot is to [[Coot#Installation_from_a_distributed_binary_tarball_package |download a pre-compiled binary]], or to use [[Coot#Installation_from_source_code_via_autobuild_scripts |the autobuild scripts]].''' | ||
==Installing pre-compiled Coot binaries== | |||
===Avoiding manual installation=== | |||
====Install gpp4 and other dependencies on Linux. | This page describes full manual installation, for those who want (or need) to do it. It is not necessary on most systems. For autobuild and for installation of precompiled Coot binaries, see [[Coot#Installing_Coot | Installing Coot]] | ||
===Debian packages for Coot and its Dependencies=== | |||
Please be aware that everything compiled below has been archived as [[Coot#Instalation_on_Debian.2FUbuntu_from_debian_archive_files | Debian archive files]] that you can easily install. | |||
==Install gpp4 and other dependencies on Linux.== | |||
Instead of using ccp4-onlylibs-dev, we want to use ssm, mmdb, gpp4 and clipper packages. | Instead of using ccp4-onlylibs-dev, we want to use ssm, mmdb, gpp4 and clipper packages. | ||
Line 11: | Line 25: | ||
Install these in the order described: | Install these in the order described: | ||
===mmdb=== | |||
wget http://www.ebi.ac.uk/~keb/cldoc/downloads/mmdb-1.19.tar.gz | wget http://www.ebi.ac.uk/~keb/cldoc/downloads/mmdb-1.19.tar.gz | ||
./configure --prefix=/usr/local/xtal --includedir=/usr/local/xtal/include | ./configure --prefix=/usr/local/xtal --includedir=/usr/local/xtal/include | ||
Line 17: | Line 31: | ||
make install | make install | ||
===ssm=== | |||
wget ftp://ftp.bioxray.au.dk/pub/mok/src/ssm-0.1.tar.gz | wget ftp://ftp.bioxray.au.dk/pub/mok/src/ssm-0.1.tar.gz | ||
CPPFLAGS=-I/usr/local/xtal/include ./configure --prefix=/usr/local/xtal --includedir=/usr/local/xtal/include | CPPFLAGS=-I/usr/local/xtal/include ./configure --prefix=/usr/local/xtal --includedir=/usr/local/xtal/include | ||
Line 23: | Line 37: | ||
make install | make install | ||
===gpp4=== | |||
wget | wget http://launchpad.net/gpp4/1.3/1.3.1/+download/gpp4-1.3.1.tar.gz | ||
CPPFLAGS=-I/usr/local/xtal/include ./configure --prefix=/usr/local/xtal --includedir=/usr/local/xtal/include | CPPFLAGS=-I/usr/local/xtal/include ./configure --prefix=/usr/local/xtal --includedir=/usr/local/xtal/include | ||
make | make | ||
make install | make install | ||
===fftw=== | |||
We need to compile fftw in a way that differs from that used to make the standard linux distribution of fftw. So to do that, we will install our own in /usr/local/xtal/lib, so it will remain hidden from the rest of the system, unless directed to look for it there. | We need to compile fftw in a way that differs from that used to make the standard linux distribution of fftw. So to do that, we will install our own in /usr/local/xtal/lib, so it will remain hidden from the rest of the system, unless directed to look for it there. | ||
ftp://ftp.fftw.org/pub/fftw/old/fftw-2.1.5.tar.gz | ftp://ftp.fftw.org/pub/fftw/old/fftw-2.1.5.tar.gz | ||
Line 36: | Line 50: | ||
make install | make install | ||
===clipper=== | |||
wget http://www.ysbl.york.ac.uk/~cowtan/clipper/clipper20ac.latest.tar.gz | wget http://www.ysbl.york.ac.uk/~cowtan/clipper/clipper20ac.latest.tar.gz | ||
CPPFLAGS=-I/usr/local/xtal/include ./configure --prefix=/usr/local/xtal --includedir=/usr/local/xtal/include -enable-shared --with-gpp4=/usr/local/xtal --with-mmdb=/usr/local/xtal --with-fftw=/usr/local/xtal --enable-mmdb --enable-minimol --enable-cif --enable-cns --enable-gpp4 | CPPFLAGS=-I/usr/local/xtal/include ./configure --prefix=/usr/local/xtal --includedir=/usr/local/xtal/include -enable-shared --with-gpp4=/usr/local/xtal --with-mmdb=/usr/local/xtal --with-fftw=/usr/local/xtal --enable-mmdb --enable-minimol --enable-cif --enable-cns --enable-gpp4 | ||
Line 44: | Line 58: | ||
Note that if the primary server for the source code is down, you can often find what you need mirrored elsewhere, eg: | |||
http://distfiles.msn.wi.us.finkmirrors.net/mirrors/fink/distfiles | |||
==Make sure the other needed dependencies are installed== | |||
These include at least the following dependencies: | These include at least the following dependencies: | ||
===Ubuntu packages=== | |||
A [[list of coot dependencies]] that is probably only a subset | A [[list of coot dependencies]] that is probably only a subset | ||
===Others that you have to make yourself: === | |||
[http://download.gna.org/guile-lib guile-lib] (I had to compile this myself as described below) | [http://download.gna.org/guile-lib guile-lib] (I had to compile this myself as described below) | ||
Line 71: | Line 89: | ||
This puts stuff into /usr, rather than /usr/local or /usr/local/xtal, which you might not want to do. The aim is to eventually get these into the standard system distribution, in which case they will reside in /usr with the other guile extensions. All of these should work with guile-1.8. | This puts stuff into /usr, rather than /usr/local or /usr/local/xtal, which you might not want to do. The aim is to eventually get these into the standard system distribution, in which case they will reside in /usr with the other guile extensions. All of these should work with guile-1.8. | ||
==Configuring and building coot == | |||
===Start a root shell session=== | |||
If root is enabled, log into a root shell, or else if you have sudo (debian, ubuntu, etc), use the command | If root is enabled, log into a root shell, or else if you have sudo (debian, ubuntu, etc), use the command | ||
Line 82: | Line 100: | ||
===Fix a configure bug=== | |||
First, issue the following command to fix a configure bug when compiling with gpp4: | First, issue the following command to fix a configure bug when compiling with gpp4: | ||
Line 88: | Line 106: | ||
perl -pi -e 's|lccp4c|lgpp4|g' configure | perl -pi -e 's|lccp4c|lgpp4|g' configure | ||
===Now configure this way: === | |||
<pre> | <pre> | ||
Line 107: | Line 125: | ||
</pre> | </pre> | ||
===Then, remake the src/coot_wrap_python.cc and src/coot_wrap_guile.cc files: === | |||
/bin/rm -f **/coot_wrap_**.cc | /bin/rm -f **/coot_wrap_**.cc | ||
Line 117: | Line 135: | ||
cd .. | cd .. | ||
===Now compile coot:=== | |||
make | make | ||
make -i install | make -i install | ||
===To make it play nice with python, I have had to do the following: === | |||
perl pi -e 's|PYTHONHOME=\$COOT_PREFIX|\#PYTHONHOME=\$COOT_PREFIX|g' bin/coot | perl -pi -e 's|PYTHONHOME=\$COOT_PREFIX|\#PYTHONHOME=\$COOT_PREFIX|g' bin/coot | ||
cp src/coot.py python/. | cp src/coot.py python/. | ||
cp src/coot.py share/coot/python/. | cp src/coot.py share/coot/python/. | ||
===Now add the reference structures: === | |||
cd share/coot | cd share/coot | ||
wget http://www.ysbl.york.ac.uk/~emsley/software/coot-reference-structures.tar.gz | wget http://www.ysbl.york.ac.uk/~emsley/software/coot-reference-structures.tar.gz | ||
tar xvfz coot-reference-structures.tar.gz ; rm coot-reference-structures.tar.gz | tar xvfz coot-reference-structures.tar.gz ; rm coot-reference-structures.tar.gz | ||
=== Now add the refmac dictionaries=== | |||
(eg using coot-0.5 and refmac 5.4; change as required): | (eg using coot-0.5 and refmac 5.4; change as required): | ||
cd /tmp | cd /tmp | ||
wget http://www.ysbl.york.ac.uk/refmac/data/refmac_dictionary.tar.gz | |||
tar xvfz | tar xvfz refmac_dictionary.tar.gz | ||
mkdir -p /usr/local/xtal/coot-0.5/lib/data | mkdir -p /usr/local/xtal/coot-0.5.2/lib/data | ||
cp -r dic /usr/local/xtal/coot-0.5/lib/data/monomers | cp -r dic /usr/local/xtal/coot-0.5.2/lib/data/monomers | ||
===Export the COOT_REFMAC_LIB_DIR variable === | |||
(you can edit bin/coot): | (you can edit bin/coot): | ||
export COOT_REFMAC_LIB_DIR=$COOT_PREFIX/lib | export COOT_REFMAC_LIB_DIR=$COOT_PREFIX/lib | ||
===Notes on the above: === | |||
The configure command is all one line; I've escaped the return. Using --prefix=$PWD simply keeps everything self-contained. You can use any install prefix you want to (it defaults to /usr/local; another sensible choice is /usr/local/xtal. Avoid /usr as a prefix, as it can mess with your system). | The configure command is all one line; I've escaped the return. Using --prefix=$PWD simply keeps everything self-contained. You can use any install prefix you want to (it defaults to /usr/local; another sensible choice is /usr/local/xtal. Avoid /usr as a prefix, as it can mess with your system). | ||
The make -i install is needed if you choose --prefix=$PWD because it tries to install some files where they are presently situated. | The''' make -i install''' is needed if you choose --prefix=$PWD because it tries to install some files where they are presently situated. | ||
---- | ---- | ||
==If you want to make it more portable== | |||
You don't need to do this to run coot; this is only handy if you need to redistribute it (or make say a debian package). | You don't need to do this to run coot; this is only handy if you need to redistribute it (or make say a debian package). | ||
Line 170: | Line 188: | ||
<pre> | <pre> | ||
cd /usr/local/xtal/coot | cd /usr/local/xtal/coot/bin | ||
foreach dylib in $(ldd coot-real | awk '{print $3}' | grep -v fff | grep -v "usr/local/xtal/coot" | sort -u ) | foreach dylib in $(ldd coot-real | awk '{print $3}' | grep -v fff | grep -v "usr/local/xtal/coot" | sort -u ) | ||
print copying $dylib | print copying $dylib | ||
sudo cp -i $dylib /usr/local/xtal/coot | sudo cp -i $dylib /usr/local/xtal/coot/lib/. | ||
end | end | ||
</pre> | </pre> | ||
Line 179: | Line 197: | ||
In addition, the guile modules can all be put in one centralized location: | In addition, the guile modules can all be put in one centralized location: | ||
cp -R /usr/share/guile* /usr/local/xtal/coot | cp -R /usr/share/guile* /usr/local/xtal/coot/share/. | ||
Return to [[coot]] |
edits