|
Size: 1734
Comment:
|
Size: 4771
Comment:
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 2: | Line 2: |
| 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 platforms. | 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 [[https://surfer.nmr.mgh.harvard.edu/fswiki/DevelopersGuide#Addinganewbinarytothetree|Developers Guide]]. |
| Line 5: | Line 7: |
| ''If you already have a working local copy of the CVS repository then you can skip this step.'' | 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 7: | Line 12: |
| # Local CVS access: export CVSROOT=/space/repo/1/dev cvs checkout -P dev |
## Get the source code $> git clone http://freesurfer.net/anonftp/pub/dist/freesurfer/repo/freesurfer.git |
| Line 11: | Line 15: |
| # Or for remote access: export CVSROOT=:ext:USER@door.nmr.mgh.harvard.edu:/space/repo/1/dev cvs checkout -P dev |
## Get data files (only required for full installation) $> cd freesurfer $> git annex get . |
| Line 15: | Line 20: |
| Or, you can get readonly CVS access to the source code by following the directions [[https://surfer.nmr.mgh.harvard.edu/fswiki/ReadOnlyCVS|on this page]]: === Get the Libraries === Use the following commands to download and install the prepackaged bundle of open-source libraries required for building Freesurfer: |
/* === Get the build tools (Ubuntu plantforms only) === If you are on an Ubuntu machine you will have to install the following packages:{{{sudo apt-get install autoconf libtool gfortran cvs}}} */ === 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:''' |
| Line 19: | Line 30: |
| 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 |
$> 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 |
| Line 23: | Line 42: |
| === Set Your Path === | '''Ubuntu 14.04 LTS / Debian 8:''' |
| Line 25: | Line 45: |
| export PATH=/usr/pubsw/packages/autotools/bin:$PATH | $> 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 |
| Line 27: | Line 64: |
'''Ubuntu 16.04 LTS:''' <<BR>>Ubuntu 14 requires all the packages required by Ubuntu 14 (listed above), along with gcc/g++/gfortran version 4.8 (this is due to errors generated by the default version of gcc included with Ubuntu 16. {{{ $> sudo apt-get install gcc-4.8 g++-4.8 gfortran ## Set gcc/g++ 4.8 to be the default compiler $> sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 50 $> sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 50 ## To be continued... crashes at mri_watershed }}} === 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. /* '''''On 64bit systems''''' */ {{{ $> 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 }}} |
|
| Line 28: | Line 91: |
| 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 {{{/Users/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.) | 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.): |
| Line 30: | Line 94: |
| ./setup_configure ./configure \ --prefix=/Users/USER/freesurfer \ make -j4 make install |
$> cd ~/freesurfer $> ./setup_configure ## Centos/Debian $> ./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 |
| Line 36: | Line 106: |
| Line 37: | Line 108: |
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 }}} |
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 $> git clone http://freesurfer.net/anonftp/pub/dist/freesurfer/repo/freesurfer.git ## Get data files (only required for full installation) $> 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_64Ubuntu 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-devUbuntu 16.04 LTS:
Ubuntu 14 requires all the packages required by Ubuntu 14 (listed above), along with gcc/g++/gfortran version 4.8 (this is due to errors generated by the default version of gcc included with Ubuntu 16.
$> sudo apt-get install gcc-4.8 g++-4.8 gfortran ## Set gcc/g++ 4.8 to be the default compiler $> sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 50 $> sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 50 ## To be continued... crashes at mri_watershed
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/Debian $> ./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
