Difference between revisions of "Installation"

From Bio++ Wiki
Jump to: navigation, search
(Staying up-to-date)
(Revamped Laurent's "Notes" section. (rem. Some of it went to the "Basic compilation" page in the Usage category.))
Line 98: Line 98:
 
That's it !
 
That's it !
  
Explanation : CMake can be given internal variables using the <tt>-D</tt> option. The install directory is specified by the CMake <tt>CMAKE_INSTALL_PREFIX</tt> variable. Because the install directories are non-standard (eg. not <tt>/usr/local/lib</tt>), the CMake <tt>CMAKE_LIBRARY_PATH</tt> and <tt>CMAKE_INCLUDE_PATH</tt> variables must also be provided (this is actually dispensable for <tt>bpp-core</tt> since it does not depend on the other components).
+
Explanation : CMake can be given internal variables using the <tt>-D</tt> option. The install directory is specified by the CMake <tt>CMAKE_INSTALL_PREFIX</tt> variable. Because our install directories are non-standard (eg. not <tt>/usr/local/lib</tt>), the CMake <tt>CMAKE_LIBRARY_PATH</tt> and <tt>CMAKE_INCLUDE_PATH</tt> variables must also be provided (this is actually dispensable for <tt>bpp-core</tt> since it does not depend on the other components).
  
 +
===== Notes =====
  
Remark: If Bio++ libraries are already present on your system, CMake will issue a warning because this interferes with the compilation of the testing executables (but not with that of the libraries). Remove the <tt>CMakeCache.txt</tt> file and specify <tt>-D BUILD_TESTING=FALSE</tt> to tell CMake to skip the compilation of those executables.
+
* <i>Custom install directories.</i> Installing Bio++ in a custom location greatly helps in compiling and running different programs depending on different Bio++ versions. This section therefore demonstrates how to download the sources in <tt>$HOME/local/bpp/dev/sources</tt> and install the libraries in <tt>$HOME/local/bpp/dev/lib</tt> and <tt>$HOME/local/bpp/dev/include</tt>. For more information on how to compile and run Bio++ dependent programs, see the [[:Category:Usage|Usage]] pages.
  
Remark: Installing Bio++ in a custom location greatly helps in compiling and running programs depending on different Bio++ versions. This section demonstrates how to download the sources in <tt>$HOME/local/bpp/dev/sources</tt> and install the libraries in <tt>$HOME/local/bpp/dev/lib</tt> and <tt>$HOME/local/bpp/dev/include</tt>. For more information on how to compile/run Bio++ dependent programs, see the [[:Category:Usage|Usage]] pages.
+
* <i>Testing executables.</i> By default, testing executables are compiled in order to be able to be able to check that the libraries function correctly with command <tt>make test</tt>. However, if Bio++ libraries are already present on your system, CMake will issue a warning because this interferes with the compilation of those executables (not with that of the libraries). Specify <tt>-D BUILD_TESTING=FALSE</tt> to tell CMake to skip the compilation of those executables.
 +
 
 +
* <i>Debugging symbols.</i> Usage of a debugger is possible if the option <tt>-D CMAKE_BUILD_TYPE=Debug</tt> is added to the cmake command line.
 +
 
 +
* On some systems, 64-bits libraries have to be installed in <tt>lib64/</tt> directories instead of just <tt>lib/</tt>. This can be achieved by passing the <tt>-D LIB_SUFFIX=64</tt> option to cmake.
  
 
===== Staying up-to-date =====
 
===== Staying up-to-date =====
Line 143: Line 148:
 
done
 
done
 
</source>
 
</source>
 
 
== Notes ==
 
* When installing the other libraries, if you have several versions of the libraries on your system (for instance one in <tt>/usr/local/</tt> in addition to your own in <tt>$HOME/.local</tt>, you can tell cmake which version to link to by running
 
 
<!--<source lang="bash">
 
cmake . -DCMAKE_INSTALL_PREFIX=$HOME/.local -DLINK_DIRECTORIES=$HOME/.local/lib -DINCLUDE_DIRECTORIES=$HOME/.local/include
 
</source>
 
-->
 
<source lang="bash">
 
cmake . -DCMAKE_INSTALL_PREFIX=$HOME/.local
 
</source>
 
 
* If you install lour libraries in a non standard directory, you should tell where the dynamic libraries are. For example, with bash shell, you can add in your <tt>.bashrc</tt>:
 
<source lang="bash">
 
export CPATH=$HOME/.local/include    # for compilation
 
export LIBRARY_PATH=$HOME/.local/lib    # for compilation
 
export LD_LIBRARY_PATH=$HOME/.local/lib  # for execution
 
</source>
 
 
* If you are updating a library and encounter compatibility problems for test programs, you should add the option <tt>-DBUILD_TESTING=OFF</tt>
 
so that new libraries are installed without any compilation of the test programs.
 
 
* Usage of a debugger is possible if the option <tt>-DCMAKE_BUILD_TYPE=Debug</tt> is added to the cmake command line.
 
 
* On some 64bits systems, 64-bits libraries have to be installed in lib64 instead of lib. This can be achieved by passing the <tt>-DLIB_SUFFIX=64</tt> option to cmake.
 
  
 
== Older versions ==
 
== Older versions ==
  
 
See [[Bio++ Versions]].
 
See [[Bio++ Versions]].

Revision as of 11:52, 4 August 2012

How to install Bio++. See also Installation (old page).

Lastest version : Bio++ 2.0

Ubuntu/Debian packages

Bio++ 2.0 packages (libbpp-core, libbpp-seq, etc.) are available in the Ubuntu and Debian standard repositories. They can be installed using your usual package/program manager.

Warning: as of June 30, 2012, there is an issue with the Ubuntu popgen package. If you want to use this part of the library, please use the package from the custom repository instead, or compile from source, or switch to the development version.

Ubuntu/Debian packages (custom repository)

A local repository is available for architectures i386 and amd64, containing additional programs built against the libraries.

Use your favorite apt manager to add the following line to your sources.list :

deb http://biopp.univ-montp2.fr/repos/apt/debian Squeeze main

You will also need to add the key that was used to sign the packages : <source lang="bash"> wget http://biopp.univ-montp2.fr/repos/apt/conf/biopp.gpg.key sudo apt-key add biopp.gpg.key </source>

Reload the packages list and then look for "Bio++" packages. That's all!

RPM packages

RPM packages are available at http://download.opensuse.org/repositories/home:/jdutheil:/Bio++/.

MacOS X

DMG packages are available at http://biopp.univ-montp2.fr/repos/dmg/ (compiled with a MacIntel computer).

Compiling from source

Compiling from source is necessary when superuser rights are not available or to install Bio++ to a non-standard location (useful when several Bio++ versions coexist on a system).

Compiling from source : the automatic way

The easiest way to compile from source is to download the Bio++ 2.0 automatic installer, edit the script header to match your system, and run it.

For instance, to download the sources in $HOME/local/bpp/2.0/sources and install the libraries in $HOME/local/bpp/2.0/lib and $HOME/local/bpp/2.0/include, one would enter : <source lang="bash"> bpp_dir=$HOME/local/bpp/2.0 mkdir -p $bpp_dir/sources cd $bpp_dir/sources wget http://biopp.univ-montp2.fr/Download/bpp-setup.sh chmod +x bpp-setup.sh gedit bpp-setup.sh # set PATH_INSTALL to $bpp_dir, on line 16 ./bpp-setup.sh </source>

Compiling from source : the manual way

Download the source archives individually (see Bio++ Versions). The compilation procedure is then the same as for compiling the development version.

Development version

git and CMake are needed to retrieve and compile the source files. They can be installed through the git and cmake packages in Ubuntu/Debian repositories, and should be present on most servers. You can check whether they are installed on your system simply by typing : <source lang="bash"> git cmake </source>


We start by creating the directory : <source lang="bash"> bpp_dir=$HOME/local/bpp/dev/ mkdir -p $bpp_dir/sources </source>

Getting the source files

This is done with git.

You need to download only the components of the library that you want to use. The bpp-core and bpp-seq components are required by all others, which are otherwise independent. (Example is given for bpp-popgen.)

<source lang="bash"> cd $bpp_dir/sources git clone http://biopp.univ-montp2.fr/git/bpp-core git clone http://biopp.univ-montp2.fr/git/bpp-seq git clone http://biopp.univ-montp2.fr/git/bpp-popgen </source>

At this point the sources directory should contain three subdirectories.

Compiling and installing

All desired components must be compiled and installed successively, starting with bpp-core and bpp-seq. Repeat the following steps (example given for bpp-core) : <source lang="bash"> cd bpp-core cmake -D CMAKE_INSTALL_PREFIX=$bpp_dir -D CMAKE_LIBRARY_PATH=$bpp_dir/lib -D CMAKE_INCLUDE_PATH=$bpp_dir/include ./ # prepare compilation make # compile make install # move files to the installation directory </source>

That's it !

Explanation : CMake can be given internal variables using the -D option. The install directory is specified by the CMake CMAKE_INSTALL_PREFIX variable. Because our install directories are non-standard (eg. not /usr/local/lib), the CMake CMAKE_LIBRARY_PATH and CMAKE_INCLUDE_PATH variables must also be provided (this is actually dispensable for bpp-core since it does not depend on the other components).

Notes
  • Custom install directories. Installing Bio++ in a custom location greatly helps in compiling and running different programs depending on different Bio++ versions. This section therefore demonstrates how to download the sources in $HOME/local/bpp/dev/sources and install the libraries in $HOME/local/bpp/dev/lib and $HOME/local/bpp/dev/include. For more information on how to compile and run Bio++ dependent programs, see the Usage pages.
  • Testing executables. By default, testing executables are compiled in order to be able to be able to check that the libraries function correctly with command make test. However, if Bio++ libraries are already present on your system, CMake will issue a warning because this interferes with the compilation of those executables (not with that of the libraries). Specify -D BUILD_TESTING=FALSE to tell CMake to skip the compilation of those executables.
  • Debugging symbols. Usage of a debugger is possible if the option -D CMAKE_BUILD_TYPE=Debug is added to the cmake command line.
  • On some systems, 64-bits libraries have to be installed in lib64/ directories instead of just lib/. This can be achieved by passing the -D LIB_SUFFIX=64 option to cmake.
Staying up-to-date

To update the libraries the basic procedure is : <source lang="bash"> cd bpp-core git pull # retrieve changes cmake ./ # update files list make make install </source>


Alternatively, the following script can be used : <source lang="bash">

  1. !/bin/bash

cd $HOME/local/bpp/dev/sources for d in bpp-core bpp-seq bpp-phyl bpp-popgen bpp-raa bpp-qt; do

 if  ! -e $d ; then
   echo -e "Skip $d (does not exist).\n"
   continue
 fi
 
 echo "Updating $d..."
 cd $d/
 git pull
 cmake .
 if make; then
   echo "Installing..."
   make install >/dev/null
 else
   echo "Compilation error in '$d/'. Abort"
   cd ..
   break
 fi
 cd ..

done </source>

Older versions

See Bio++ Versions.