Differences between revisions 28 and 45 (spanning 17 versions)
Revision 28 as of 2015-10-02 10:59:57
Size: 3021
Editor: ZekeKaufman
Comment:
Revision 45 as of 2015-12-09 15:26:17
Size: 3488
Editor: ZekeKaufman
Comment:
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:
''If you already have a working local copy of the CVS repository then you can skip this step.'' The steps below are only applicable if you have access within the Martinos Center firewall. Outside users can get readonly CVS access to the source code by following the directions [[https://surfer.nmr.mgh.harvard.edu/fswiki/ReadOnlyCVS|on this page]]: If you have access within the Martinos Center firewall, follow the steps below to download the source code from CVS. Non-Martinos users can get readonly CVS access to the source code by following the directions [[https://surfer.nmr.mgh.harvard.edu/fswiki/ReadOnlyCVS|on this page]]:
Line 7: Line 7:
# Local CVS access: # Local:
Line 11: Line 11:
# Or for remote access:
$> export CVSROOT=:ext:USER@door.nmr.mgh.harvard.edu:/space/repo/1/dev
# Remote:
$> export CVSROOT=:ext:USERNAME@door.nmr.mgh.harvard.edu:/space/repo/1/dev
Line 19: Line 19:
=== Download and Install the Libraries === === Install System Libraries ===
Line 21: Line 21:
The following system packages are required on CentOS6 systems before building. Equivalent or similar packages will be required on other linux distributions. Depending on your specific linux distribution, the following system packages are required will be required:
Line 23: Line 23:
'''CentOS 6:'''
Line 37: Line 38:
Download and install the prepackaged bundle of open-source libraries required for building Freesurfer: '''Ubuntu 14.04 LTS:'''
{{{
$> sudo apt-get install build-essential \
                        libtool \
                        automake \
                        gfortran \
                        libglu1-mesa-dev \
                        freetype* \
                        uuid-dev \
                        libxmu-dev \
                        libxmu-headers \
                        libxi-dev \
                        libx11-dev \
                        libxt-dev \
                        liblapack-dev
}}}

=== 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.
Line 42: Line 62:
$> sudo mkdir -p /usr/pubsw/packages
$> sudo tar -C /usr/pubsw/packages -xzvf centos6-x86_64-packages.tar.gz
$> tar -xzvf centos6-x86_64-packages.tar.gz
$> cd centos6-x86_64-packages
$> ./setup.sh
Line 46: Line 67:
Lastly, some system will complain about a missing jpeg library. If this happens, create the following symbolic link: === 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.)
{{{
$> ./setup_configure
$> ./configure --prefix=/home/username/fs_install --with-pkgs-dir=/home/username/centos6-x86_64-packages
$> 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:
Line 52: Line 83:
/* '''''On 32bit systems'''''{{{wget ftp://surfer.nmr.mgh.harvard.edu/pub/dist/fs_supportlibs/prebuilt/centos6_x86_64/centos6-x86_64-packages.tar.gz mkdir -p /usr/pubsw/packages tar -C /usr/pubsw/packages -xzvf centos6-x86_64-packages.tar.gz }}} */

=== 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.)
{{{
$> ./setup_configure
$> ./configure --prefix=/home/USER/freesurfer
$> make -j4
$> make install
}}}
Done!

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 CentOS6 x86_64 desktop edition.

1. Get the Source Code

If you have access within the Martinos Center firewall, follow the steps below to download the source code from CVS. Non-Martinos users can get readonly CVS access to the source code by following the directions on this page:

# Local:
$> export CVSROOT=/space/repo/1/dev
$> cvs checkout -P dev

# Remote:
$> export CVSROOT=:ext:USERNAME@door.nmr.mgh.harvard.edu:/space/repo/1/dev
$> cvs checkout -P dev

2. Install System Libraries

Depending on your specific linux distribution, the following system packages are required will be required:

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:

$> sudo apt-get install build-essential \
                        libtool \
                        automake \
                        gfortran \
                        libglu1-mesa-dev \
                        freetype* \
                        uuid-dev \
                        libxmu-dev \
                        libxmu-headers \
                        libxi-dev \
                        libx11-dev \
                        libxt-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.

$> 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
$> cd 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.)

$> ./setup_configure
$> ./configure --prefix=/home/username/fs_install --with-pkgs-dir=/home/username/centos6-x86_64-packages
$> 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