6884
Comment:
|
9519
|
Deletions are marked like this. | Additions are marked like this. |
Line 2: | Line 2: |
||<35%><<TableOfContents>>|| |
||<35%><<TableOfContents>> || == Linux Distribution-specific comments == === Ubuntu 10.04 (and 9.x for the most part) === This is one of the best EMAN2 development platforms, and what I use now. All of the dependencies can be installed with the package manager and work fine. You will need: ''libhdf5-serial libhdf5-serial-dev lipng12 libpng12-dev libjpeg62 libjpeg62-dev libtiff4 libtiff4-dev python-qt4 python-qt4-gl python-opengl python-matplotlib libfftw3 libfftw3-dev libgsl0-dev db4.8-util libdb4.8 python-bsddb3 libboost-python1.40-dev python-dev cmake cmake-curses-gui ipython libgl1-mesa-dev libglu1-mesa-dev'' You may also need the following (but these should already be installed): ''freeglut3 libgl1-mesa-dri libgl-mesa-glx libglu1-mesa libqt4-opengl mesa-common-dev nvidia-current nvidia-settings python-opengl python-gt4gl'' (and all of the dependencies it wants to install as a consequence) Newer versions of any of these packages should also be ok as replacements, with the exception of python, which MUST be 2.x not 3.x. === Mandriva 2009.0 - 2010.0 === Unfortunately, a lot of problems, all due to Mandriva using broken versions of various dependencies. Mandriva used to be my platform of choice, but many issues, such as the OpenGL support in PyQt4 being broken, have lead me to stop using this distro. It is possible to make it work by recompiling your own version of many dependencies, but it is a very painful process. * PyQt4 is broken on Mandriva, and you will get a message ''Cannot make invalid context current''. The only solution we have found is to install PyQt4 yourself on top of the system one. * No package for bsddb3, install python-setuptools, then you can use easy_install to install bsddb3. Might be a good idea to use a newer version of BerkeleyDB as well, though this may not be strictly required. * Mandriva uses a broken version of the Boost libraries. You need to install a newer version. You can just put in the default /usr/local location then point to this version in ccmake. == External Libraries == EMAN2 has lots of dependent libraries. To compile EMAN2 from source, you need install development packages for these external libraries. Depends on your Linux distribution, you can either install them by yum(Fedora, CentOS, RedHat), urpmi(Mandriva), yast(SuSE), synaptic/apt-get(Ubuntu). Or compile them form source code. * We collect all these dependent packages under this [[http://ncmi.bcm.edu/ncmi/software/counter_222/software_91/index_html|link]]. These may not be the current versions of EMAN2 dependent libraries, but they are versions we have tried to compile from source and proved works for EMAN2. |
Line 9: | Line 30: |
All of these libraries can be installed | |
Line 11: | Line 33: |
1. fftw (version 2.1.3+) (http://www.fftw.org/) To install fftw from source use either configure option: {{{ % ./configure --enable-static=no --enable-shared=yes --enable-float --enable-type-prefix}}} OR {{{ % ./configure --enable-shared=yes --enable-float}}} Followed by: {{{ % make}}} 2. gsl (version 1.3+) (http://www.gnu.org/software/gsl/) {{{ |
1. fftw (version 2.1.3+) (http://www.fftw.org/) To install fftw from source use either configure option: {{{ % ./configure --enable-static=no --enable-shared=yes --enable-float --enable-type-prefix }}} OR {{{ % ./configure --enable-shared=yes --enable-float }}} Followed by: {{{ % make % make install }}} 1. gsl (version 1.3+) (http://www.gnu.org/software/gsl/) {{{ |
Line 26: | Line 51: |
% make}}} 3. Boost (version 1.32+) (http://www.boost.org) 3.1 Installing Boost requires Boost.Jam. Executables and source code for jam can be found at the Boost website. Installing Boost requires the user to identify a particular toolset to use during compilation. Most UNIX systems will probably use the "gcc" toolset; visit http://www.boost.org/more/getting_started.html#Tools for a complete listing. {{{ % bjam "-sTOOLS=gcc" install}}} Header files from the Boost installation (located in the "boost" subdirectory of the Boost installation (eg. /boost_1_32_0/boost)) must now either be added to the compilers path or copied into an existing location on the path in a subdirectory /boost. One possibility for this might be: {{{ % cp -r boost /usr/include/boost}}} 4. CMake (version 2.0.6+) (http://www.cmake.org) Executables for several platforms are available; source code can also be used for custom installations. |
% make % make install }}} 1. Boost (version 1.32+) (http://www.boost.org) 3.1 Installing Boost requires Boost.Jam. Executables and source code for jam can be found at the Boost website. Installing Boost requires the user to identify a particular toolset to use during compilation. Most UNIX systems will probably use the "gcc" toolset; visit http://www.boost.org/more/getting_started.html#Tools for a complete listing. {{{ % bjam "-sTOOLS=gcc" install }}} Header files from the Boost installation (located in the "boost" subdirectory of the Boost installation (eg. /boost_1_32_0/boost)) must now either be added to the compilers path or copied into an existing location on the path in a subdirectory /boost. One possibility for this might be: {{{ % cp -r boost /usr/include/boost }}} 1. CMake (version 2.0.6+) (http://www.cmake.org) Executables for several platforms are available; source code can also be used for custom installations. |
Line 48: | Line 67: |
* To read/write HDF5 image, use hdf5 (http://hdf.ncsa.uiuc.edu/HDF5). * To read TIFF image, use libtiff (http://www.libtiff.org) * To read PNG image, use PNG (http://www.libpng.org) For development the following libraries/programs are required (see Appendix A for installation help): * Python (version 2.2+) (http://www.python.org) * Boost Python (version 1.32+) (http://www.boost.org) * numpy (http://www.scipy.org) |
* To read/write HDF5 image, use hdf5 (http://hdf.ncsa.uiuc.edu/HDF5). * To read TIFF image, use libtiff (http://www.libtiff.org) * To read PNG image, use PNG (http://www.libpng.org) For development the following libraries/programs are required (see Appendix A for installation help): * Python (version 2.2+) (http://www.python.org) * Boost Python (version 1.32+) (http://www.boost.org) * numpy (http://www.scipy.org) |
Line 66: | Line 80: |
Suppose you have source code eman2.tar.gz 1. {{{ % cd $HOME % mkdir -p EMAN2/src % cd EMAN2/src % gunzip eman2.tar.gz % tar xf eman2.tar}}} 2. {{{ |
Once all the dependencies are installed, you can install the source code using cmake. Suppose you have source code eman2.source.tar.gz: 1. {{{ % cd $home/username/ % tar -zxvf eman2.source.tar.gz }}} 1. {{{ |
Line 80: | Line 89: |
% cd build}}} 3. {{{ |
% cd build }}} 1. {{{ |
Line 86: | Line 95: |
% make install}}} 4. Set up login shell for csh/tcsh, put the following to your .cshrc or .tcshrc file: {{{ |
% make install }}} 1. Set up login shell for csh/tcsh, put the following to your .cshrc or .tcshrc file: {{{ |
Line 92: | Line 102: |
setenv LD_LIBRARY_PATH $EMAN2DIR/lib setenv PYTHONPATH .:$HOME/EMAN2/lib}}} For bash in .bashrc add: {{{ |
setenv LD_LIBRARY_PATH $EMAN2DIR/lib:${LD_LIBRARY_PATH} setenv PYTHONPATH $EMAN2DIR/lib:${PYTHONPATH} }}} For bash in .bashrc add: {{{ |
Line 99: | Line 109: |
export LD_LIBRARY_PATH=$EMAN2DIR/lib export PYTHONPATH=$PYTHONPATH:$HOME/EMAN2/lib}}} |
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$EMAN2DIR/lib export PYTHONPATH=$PYTHONPATH:$EMAN2DIR/lib }}} |
Line 105: | Line 114: |
Line 107: | Line 115: |
1. Follow the first 2 steps in Quick Installation. 2. If your libraries are not installed at the default places, set up the related environment variables: * fftw -> FFTWDIR * gsl -> GSLDIR * tiff -> TIFFDIR * png -> PNGDIR * hdf5 -> HDF5DIR * python -> PYTHON_ROOT and PYTHON_VERSION 3. {{{ % ccmake ../eman2}}} * Type 'c' if it asks about "CMAKE_BACKWARDS_COMPATIBILITY". * Make necessary changes for compilation flags. * Developers will probably want to set BOOST-LIBRARY to a Boost.Python object file (ex. libboost_python-gcc-1_32.so) * Then type 'c', and type 'g'. 4. {{{ % make % make install}}} |
1. Follow the first 2 steps in Quick Installation. 1. If your libraries are not installed at the default places, set up the related environment variables: * fftw -> FFTWDIR * gsl -> GSLDIR * tiff -> TIFFDIR * png -> PNGDIR * hdf5 -> HDF5DIR * python -> PYTHON_ROOT and PYTHON_VERSION 1. {{{ % ccmake ../eman2 }}} 1. Type 'c' if it asks about "CMAKE_BACKWARDS_COMPATIBILITY". 1. Make necessary changes for compilation flags. * Developers will probably want to set BOOST-LIBRARY to a Boost.Python object file (ex. libboost_python-gcc-1_32.so) 1. Then type 'c', and type 'g'. 1. {{{ % make % make install }}} |
Line 131: | Line 140: |
{{{ Athlon: ENABLE_ATHLON Opteron(AMD64): ENABLE_OPTERON Mac G5: ENABLE_G5}}} |
. {{{ Athlon: ENABLE_ATHLON Opteron(AMD64): ENABLE_OPTERON Mac G5: ENABLE_G5 }}} |
Line 137: | Line 148: |
1. Install doxygen (version 1.4.3+, http://www.doxygen.org) 2. Install graphviz (http://www.graphviz.org/) 3. install latex (http://www.latex-project.org/) 4. After you have a successful EMAN2 install, i.e., you can import EMAN2 in Python, {{{ |
1. Install doxygen (version 1.4.3+, http://www.doxygen.org) 1. Install graphviz (http://www.graphviz.org/) 1. install latex (http://www.latex-project.org/) 1. After you have a successful EMAN2 install, i.e., you can import EMAN2 in Python, {{{ |
Line 143: | Line 154: |
ccmake ../eman2}}} Type 't' toggle to advanced mode, {{{ check ENABLE_AUTODOC to ON make make install}}} All documents will be in your EMAN2/doc directory. |
ccmake ../eman2 }}} set ENABLE_AUTODOC to ON, {{{ make make install }}} All documents will be in your EMAN2/doc directory. |
Line 152: | Line 164: |
0. For Emacs users, please add the following line to your $HOME/.emacs: {{{ (setq default-tab-width 4)}}} 1. Ensure the Boost.Python 2. To generate new boost python wrapper, run {{{ |
0. For Emacs users, please add the following line to your $HOME/.emacs: {{{ (setq default-tab-width 4) }}} 0. Ensure the Boost.Python 0. To generate new boost python wrapper, run {{{ |
Line 159: | Line 172: |
% ./create_boost_python}}} 3. Windows Installer EMAN uses "Nullsoft Scriptable Install System" (http://nsis.sourceforge.net/) to generate the windows installer. It also uses "HM NIS Edit" (http://hmne.sourceforge.net/) as the editor. |
% ./create_boost_python }}} 0. Windows Installer: EMAN uses "Nullsoft Scriptable Install System" (http://nsis.sourceforge.net/) to generate the windows installer. It also uses "HM NIS Edit" (http://hmne.sourceforge.net/) as the editor. |
Line 166: | Line 178: |
Line 169: | Line 179: |
1. Download 'bjam' for your platform. 2. Download boost source from http://www.boost.org. Assume the version is boost_1_32_0. {{{ % cd /usr/local/src; tar zxf boost_1_32_0.tar.gz; cd boost_1_32_0.}}} 3. Set up environment variables "PYTHON_ROOT" and "PYTHON_VERSION". For example, if your python is at /usr/bin/python then PYTHON_ROOT is "/usr". If your python version is 2.2.X, PYTHON_VERSION is '2.2'. a) Check your shell: {{{ % echo $SHELL}}} b) If you are using bash/zsh, do {{{ |
1. Download 'bjam' for your platform. 1. Download boost source from http://www.boost.org. Assume the version is boost_1_32_0. {{{ % cd /usr/local/src; tar zxf boost_1_32_0.tar.gz; cd boost_1_32_0. }}} 1. Set up environment variables "PYTHON_ROOT" and "PYTHON_VERSION". For example, if your python is at /usr/bin/python then PYTHON_ROOT is "/usr". If your python version is 2.2.X, PYTHON_VERSION is '2.2'. . a) Check your shell: {{{ % echo $SHELL }}} b) If you are using bash/zsh, do {{{ |
Line 181: | Line 192: |
% export PYTHON_ROOT=/usr}}} If you are using csh/tcsh, do {{{ |
% export PYTHON_ROOT=/usr }}} If you are using csh/tcsh, do {{{ |
Line 186: | Line 197: |
% setenv PYTHON_ROOT /usr}}} 4. cd libs/python/build [didn't do this] 5. run 'bjam' with your options: a) linux-x86: % bjam b) SGI Irix: % bjam "-sTOOLS=mipspro" c) Mac OS X: % bjam "-sTOOLS=darwin" 6. login as root 7. {{{ |
% setenv PYTHON_ROOT /usr }}} 1. ''cd libs/python/build [didn't do this]'' 1. Run 'bjam' with your options: a) linux-x86: % bjam b) SGI Irix: % bjam "-sTOOLS=mipspro" c) Mac OS X: % bjam "-sTOOLS=darwin" 1. Login as root 1. {{{ |
Line 196: | Line 204: |
cd ../../..; cp -rf boost /usr/local/include}}} |
cd ../../..; cp -rf boost /usr/local/include }}} |
Line 200: | Line 208: |
If the python you want to use in your computer is not found by CMake, you may set up environment variables "PYTHON_ROOT" and "PYTHON_VERSION". For example, if your python is at /usr/local/python2.4/bin/python. PYTHON_ROOT is "/usr/local/python2.4". if your python is 2.4.X, PYTHON_VERSION is '2.4'. |
If the python you want to use in your computer is not found by CMake, you may set up environment variables "PYTHON_ROOT" and "PYTHON_VERSION". For example, if your python is at /usr/local/python2.4/bin/python. PYTHON_ROOT is "/usr/local/python2.4". if your python is 2.4.X, PYTHON_VERSION is '2.4'. |
Line 209: | Line 211: |
From the website http://sourceforge.net/projects/numpy download source package. For windows, run the binary installer and the installation is complete. Other users must download the source code and install manually as follows: - get source code numpy-1.0.1.tar.gz - % gunzip numpy-1.0.1.tar.gz % tar xf numpy-1.0.1.tar - login as root - % cd numpy-1.0.1; % python setup.py install |
From the website http://sourceforge.net/projects/numpy download source package. For windows, run the binary installer and the installation is complete. Other users must download the source code and install manually as follows: * Get source code numpy-1.0.1.tar.gz {{{ % gunzip numpy-1.0.1.tar.gz % tar xf numpy-1.0.1.tar }}} * Login as root. {{{ % cd numpy-1.0.1; % python setup.py install }}} |
Compiling EMAN2 on Linux System
Contents
|
Linux Distribution-specific comments
Ubuntu 10.04 (and 9.x for the most part)
This is one of the best EMAN2 development platforms, and what I use now. All of the dependencies can be installed with the package manager and work fine. You will need:
libhdf5-serial libhdf5-serial-dev lipng12 libpng12-dev libjpeg62 libjpeg62-dev libtiff4 libtiff4-dev python-qt4 python-qt4-gl python-opengl python-matplotlib libfftw3 libfftw3-dev libgsl0-dev db4.8-util libdb4.8 python-bsddb3 libboost-python1.40-dev python-dev cmake cmake-curses-gui ipython libgl1-mesa-dev libglu1-mesa-dev
You may also need the following (but these should already be installed):
freeglut3 libgl1-mesa-dri libgl-mesa-glx libglu1-mesa libqt4-opengl mesa-common-dev nvidia-current nvidia-settings python-opengl python-gt4gl
(and all of the dependencies it wants to install as a consequence) Newer versions of any of these packages should also be ok as replacements, with the exception of python, which MUST be 2.x not 3.x.
Mandriva 2009.0 - 2010.0
Unfortunately, a lot of problems, all due to Mandriva using broken versions of various dependencies. Mandriva used to be my platform of choice, but many issues, such as the OpenGL support in PyQt4 being broken, have lead me to stop using this distro. It is possible to make it work by recompiling your own version of many dependencies, but it is a very painful process.
PyQt4 is broken on Mandriva, and you will get a message Cannot make invalid context current. The only solution we have found is to install PyQt4 yourself on top of the system one.
- No package for bsddb3, install python-setuptools, then you can use easy_install to install bsddb3. Might be a good idea to use a newer version of BerkeleyDB as well, though this may not be strictly required.
- Mandriva uses a broken version of the Boost libraries. You need to install a newer version. You can just put in the default /usr/local location then point to this version in ccmake.
External Libraries
EMAN2 has lots of dependent libraries. To compile EMAN2 from source, you need install development packages for these external libraries. Depends on your Linux distribution, you can either install them by yum(Fedora, CentOS, RedHat), urpmi(Mandriva), yast(SuSE), synaptic/apt-get(Ubuntu). Or compile them form source code.
We collect all these dependent packages under this link. These may not be the current versions of EMAN2 dependent libraries, but they are versions we have tried to compile from source and proved works for EMAN2.
Required Libraries / Programs
All of these libraries can be installed
The following libraries are required for EMAN2 installation (the libraries should be installed as shared-object libraries where applicable):
fftw (version 2.1.3+) (http://www.fftw.org/) To install fftw from source use either configure option:
% ./configure --enable-static=no --enable-shared=yes --enable-float --enable-type-prefix
OR% ./configure --enable-shared=yes --enable-float
Followed by:% make % make install
gsl (version 1.3+) (http://www.gnu.org/software/gsl/)
% ./configure % make % make install
Boost (version 1.32+) (http://www.boost.org) 3.1 Installing Boost requires Boost.Jam. Executables and source code for jam can be found at the Boost website. Installing Boost requires the user to identify a particular toolset to use during compilation. Most UNIX systems will probably use the "gcc" toolset; visit http://www.boost.org/more/getting_started.html#Tools for a complete listing.
% bjam "-sTOOLS=gcc" install
Header files from the Boost installation (located in the "boost" subdirectory of the Boost installation (eg. /boost_1_32_0/boost)) must now either be added to the compilers path or copied into an existing location on the path in a subdirectory /boost. One possibility for this might be:% cp -r boost /usr/include/boost
CMake (version 2.0.6+) (http://www.cmake.org) Executables for several platforms are available; source code can also be used for custom installations.
Optional Libraries / Programs
To read/write HDF5 image, use hdf5 (http://hdf.ncsa.uiuc.edu/HDF5).
To read TIFF image, use libtiff (http://www.libtiff.org)
To read PNG image, use PNG (http://www.libpng.org) For development the following libraries/programs are required (see Appendix A for installation help):
Python (version 2.2+) (http://www.python.org)
Boost Python (version 1.32+) (http://www.boost.org)
numpy (http://www.scipy.org)
Quick Installation
Once all the dependencies are installed, you can install the source code using cmake. Suppose you have source code eman2.source.tar.gz:
% cd $home/username/ % tar -zxvf eman2.source.tar.gz
% mkdir build % cd build
% cmake ../eman2 % make % make install
- Set up login shell for csh/tcsh, put the following to your .cshrc or .tcshrc file:
setenv EMAN2DIR $home/username/EMAN2 setenv PATH $EMAN2DIR/bin:${PATH} setenv LD_LIBRARY_PATH $EMAN2DIR/lib:${LD_LIBRARY_PATH} setenv PYTHONPATH $EMAN2DIR/lib:${PYTHONPATH}
For bash in .bashrc add:export EMAN2DIR=/home/username/EMAN2 export PATH=$PATH:$EMAN2DIR/bin export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$EMAN2DIR/lib export PYTHONPATH=$PYTHONPATH:$EMAN2DIR/lib
Advanced Installation
If your libraries (fftw, gsl, hdf, etc) are not found by Quick Installation, or if you want to change the compilation options, the following steps help:
- Follow the first 2 steps in Quick Installation.
- If your libraries are not installed at the default places, set up the related environment variables:
fftw -> FFTWDIR
gsl -> GSLDIR
tiff -> TIFFDIR
png -> PNGDIR
hdf5 -> HDF5DIR
python -> PYTHON_ROOT and PYTHON_VERSION
% ccmake ../eman2
- Type 'c' if it asks about "CMAKE_BACKWARDS_COMPATIBILITY".
- Make necessary changes for compilation flags.
- Developers will probably want to set BOOST-LIBRARY to a Boost.Python object file (ex. libboost_python-gcc-1_32.so)
- Then type 'c', and type 'g'.
% make % make install
Platform Dependent Optimization
In CMake Configuration, enable the following option for your platform:
Athlon: ENABLE_ATHLON Opteron(AMD64): ENABLE_OPTERON Mac G5: ENABLE_G5
How to Generate Latest Documentation
Install doxygen (version 1.4.3+, http://www.doxygen.org)
Install graphviz (http://www.graphviz.org/)
install latex (http://www.latex-project.org/)
- After you have a successful EMAN2 install, i.e., you can import EMAN2 in Python,
cd EMAN2/src/build ccmake ../eman2
set ENABLE_AUTODOC to ON,make make install
All documents will be in your EMAN2/doc directory.
Notes For Developers
- For Emacs users, please add the following line to your $HOME/.emacs:
(setq default-tab-width 4)
- Ensure the Boost.Python
- To generate new boost python wrapper, run
% cd eman2/libpyEM % ./create_boost_python
- Windows Installer:
EMAN uses "Nullsoft Scriptable Install System" (http://nsis.sourceforge.net/) to generate the windows installer. It also uses "HM NIS Edit" (http://hmne.sourceforge.net/) as the editor.
Appendix A
A.1. How to Install Boost Python
- Download 'bjam' for your platform.
Download boost source from http://www.boost.org. Assume the version is boost_1_32_0.
% cd /usr/local/src; tar zxf boost_1_32_0.tar.gz; cd boost_1_32_0.
- Set up environment variables "PYTHON_ROOT" and "PYTHON_VERSION". For example, if your python is at /usr/bin/python then PYTHON_ROOT is "/usr". If your python version is 2.2.X, PYTHON_VERSION is '2.2'.
- a) Check your shell:
% echo $SHELL
b) If you are using bash/zsh, do% export PYTHON_VERSION=2.2 % export PYTHON_ROOT=/usr
If you are using csh/tcsh, do% setenv PYTHON_VERSION 2.2 % setenv PYTHON_ROOT /usr
- a) Check your shell:
cd libs/python/build [didn't do this]
- Run 'bjam' with your options: a) linux-x86: % bjam b) SGI Irix: % bjam "-sTOOLS=mipspro" c) Mac OS X: % bjam "-sTOOLS=darwin"
- Login as root
cp -df bin-stage/libboost_python.so* /usr/local/lib cd ../../..; cp -rf boost /usr/local/include
A.2. How to use your own python version
If the python you want to use in your computer is not found by CMake, you may set up environment variables "PYTHON_ROOT" and "PYTHON_VERSION". For example, if your python is at /usr/local/python2.4/bin/python. PYTHON_ROOT is "/usr/local/python2.4". if your python is 2.4.X, PYTHON_VERSION is '2.4'.
A.3. How to Install numpy
From the website http://sourceforge.net/projects/numpy download source package.
For windows, run the binary installer and the installation is complete. Other users must download the source code and install manually as follows:
- Get source code numpy-1.0.1.tar.gz
% gunzip numpy-1.0.1.tar.gz % tar xf numpy-1.0.1.tar
- Login as root.
% cd numpy-1.0.1; % python setup.py install