Differences between revisions 67 and 77 (spanning 10 versions)
Revision 67 as of 2016-02-23 13:09:35
Size: 4016
Editor: ZekeKaufman
Comment:
Revision 77 as of 2016-04-26 14:59:23
Size: 4231
Editor: ZekeKaufman
Comment:
Deletions are marked like this. Additions are marked like this.
Line 7: Line 7:
If you have access within the Martinos Center firewall, follow the steps below to download the source code from CVS:
{{{
# Local:
$> export CVSROOT=/space/repo/1/dev
$> cvs checkout -P dev
Line 13: Line 8:
# Remote:
$> export CVSROOT=:ext:USERNAME@door.nmr.mgh.harvard.edu:/space/repo/1/dev
$> cvs checkout -P dev
}}}
Users can download Freesurfer source code via the read-only git repo. A simple clone of the repo (187 Megs) is enough to perform a build of all freesurfer binaries. However, if a user wishes to perform full Freesurfer installation locally, he/she will need [[https://git-annex.branchable.com/ | git-annex]] in order to download all the data files required for a full installation (6.6 Gigs).
Line 18: Line 10:
Non-Martinos users can access a read-only git repo which mirrors the CVS repo (requires git annex):
Line 21: Line 12:
## Get the source code for building.
Line 22: Line 14:

## Get data files (only required for installing locally).
Line 24: Line 18:
Line 31: Line 26:
Depending on your specific linux distribution, the following system packages are required will be required: Building freesurfer requires various system specific libraries be installed on your machine. Depending on your specific linux distribution, the required system packages are listed below:
Line 50: Line 45:
$> sudo apt-get update
Line 64: Line 60:
            libjpeg62-dev \
Line 77: Line 74:
$> cd centos6-x86_64-packages
$> .
/setup.sh
$> ./centos6-x86_64-packages/setup.sh
Line 88: Line 84:
# Centos ## Centos
Line 91: Line 87:
# Ubuntu
$> ./configure --disable-Werror --with-pkgs-dir=/home/username/centos6-x86_64-packages --prefix=/home/username/fs_install --disable-xaw-apps --disable-tcltk-apps
## Ubuntu
$> ./configure --disable-Werror --with-pkgs-dir=/home/username/centos6-x86_64-packages --prefix=/home/username/fs_install --disable-xawplus-apps --disable-tcltk-apps

This page is targeted at those who wish to develop and build the freesurfer source code on their Linux platform. These instructions have been tested for Centos 6 Desktop Edition, Ubuntu 14.04 LTS, and Debian 8.

Those who wish to add a binary to the freesurfer software suite should consult the 'Adding a new binary to the tree' section of the Developers Guide.

1. Get the Source Code

Users can download Freesurfer source code via the read-only git repo. A simple clone of the repo (187 Megs) is enough to perform a build of all freesurfer binaries. However, if a user wishes to perform full Freesurfer installation locally, he/she will need git-annex in order to download all the data files required for a full installation (6.6 Gigs).

## Get the source code for building.
$> git clone http://freesurfer.net/anonftp/pub/dist/freesurfer/repo/freesurfer.git

## Get data files (only required for installing locally). 
$> cd freesurfer
$> git annex get .  

2. Install System Libraries

Building freesurfer requires various system specific libraries be installed on your machine. Depending on your specific linux distribution, the required system packages are listed below:

CentOS 6:

$> yum groupinstall "Development Tools"
$> yum install mesa-libGLU-devel \
            freetype-devel.x86_64 \
            libuuid-devel.x86_64 \
            uuid-c++-devel.x86_64 \
            libXmu-devel.x86_64 \
            libXi-devel.x86_64 \
            lapack-devel.x86_64 \
            liblapack-devel.x86_64 \
            libXaw-devel.x86_64 \
            libpng-devel.x86_64

Ubuntu 14.04 LTS / Debian 8:

$> sudo apt-get update
$> sudo apt-get install build-essential \
            tcsh \
            libtool-bin \
            libtool \
            automake \
            gfortran \
            libglu1-mesa-dev \
            libfreetype6-dev \
            uuid-dev \
            libxmu-dev \
            libxmu-headers \
            libxi-dev \
            libx11-dev \
            libxt-dev \
            libjpeg62-dev \
            libxaw7-dev \
            liblapack-dev

3. Library Dependencies

In order to compile freesurfer, you will need to download and install our prebuilt bundle of 3rd party dependancies. Download the package and extract its content. Remember the extraction location as you will need to pass that directory to the configure script.

$> cd ~
$> wget ftp://surfer.nmr.mgh.harvard.edu/pub/dist/fs_supportlibs/prebuilt/centos6_x86_64/centos6-x86_64-packages.tar.gz
$> tar -xzvf centos6-x86_64-packages.tar.gz
$> ./centos6-x86_64-packages/setup.sh

4. Setup, Configure, Make

Determine the location you want Freesurfer to be installed. For example, in case case we will assume the user wants freesurfer to be installed in /home/USER/freesurfer. Type the following commands in the top-level Freesurfer directory (the directory that contains configure.in and all the mri_* and mris_* directories.):

$> cd ~/freesurfer
$> ./setup_configure

## Centos
$> ./configure --disable-Werror --with-pkgs-dir=/home/username/centos6-x86_64-packages --prefix=/home/username/fs_install

## Ubuntu
$> ./configure --disable-Werror --with-pkgs-dir=/home/username/centos6-x86_64-packages --prefix=/home/username/fs_install --disable-xawplus-apps --disable-tcltk-apps

$> make -j4
$> make install

Done!

Its possible some systems (Ubuntu) will complain about a missing jpeg library after the configure script is run, or during runtime. If this happens, create the following symbolic link:

$> cd /usr/lib64
$> sudo ln -s libjpeg.so.62 libjpeg.so

Send your comments/questions/feedback to zkaufman@nmr.mgh.harvard.edu