CentOS 6 and 7 RPM install

The examples below show an install on CentOS7 using the freesurfer-CentOS7-7.0.0-1.x86_64.rpm RPM package. If you are running on CentOS6, then follow the same instructions using the CentOS6 version of the apckage, freesurfer-CentOS6-7.0.0-1.x86_64.rpm package.

Exploring the broad range of yum command line options is beyond the scope of this freesurfer install example. Note that while a user without sudo/root privileges won't be able to install software with yum, you can always run yum (and rpm) commands without sudo and see what is installed on the system, what packages are available from the online repos, etc.

If the yum command has not been run in a while, the first thing it will do is update the list of packages available from the online repositories it searches for on the web to provide packages to download and install. If we ask yum to tell us if freesurfer is already installed, you might see this kind of output reporting yum is updating the list of available packages from the available web site repos.

$ yum list installed | grep -i freesurfer
(1/2) epel/x86_64 updateinfo
(2/2) updates/7/x86_64/primary_db
.. <output deleted / your output will vary>
Determining fastest mirrors
* base: mirror.siena.edu
* epel: ewr.edge.kernel.org
.. <output deleted / your output will vary>

The result of the above command is that nothing was printed out listing an installed freesurfer package and its version number. Or in the example below, the assumption is that no freesurfer package is currently installed on the system.

We provide a freesurfer *.rpm package for download that is currently not part of an existing Redhat, CentOS or third-party repository. Yum by default assumes a package is available from one of the online package repositories it has been configured to search for. So in response to the most basic command to install a "freesurfer" package, yum will search through every repository it knows about, find nothing, and then give up.

$ sudo yum install freesurfer
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.seas.harvard.edu
 * epel: mirrors.mit.edu
 * extras: mirror.san.fastserv.com
 * rpmforge: repoforge.spinellicreations.com
 * updates: mirrors.mit.edu
..  <your output will vary>
No package freesurfer available.
Error: Nothing to do

The remedy is to provide command line options to tell yum: (1) the package is not signed as it would be in an online repository; (2) the freesurfer rpm package is local to the machine and should not be searched for or downloaded from an online repository.

$ sudo yum --nogpgcheck localinstall freesurfer-CentOS7-7.0.0-1.x86_64.rpm

Previewing the install

The screen shots below show what the yum package manager reports should be installed for a particular machine running CentOS 7.4. Typing "N" will cancel the install of all software. Depending upon what is already installed on your machine, you may see more or less packages required to be installed, e.g., you may already have packages like the gcc tools installed on your system.


Performing the install

Please note - if you already have freesurfer installed as /usr/local/freesurfer, e.g., then it is strongly advised that you remove or rename the ./freesurfer directory to be something other than freesurfer under /usr/local. This is because the rpm installer will install freesurfer under the path /usr/local/freesurfer/<package version>

To perform the install answer "y" at the prompt.

The screen shots below show what the yum package manager reports has been installed on the system after the install has been done.


Verifying the install & Setup

We can ask yum again if freesurfer is installed - and this time the answer should be yes. Note that freesurfer was installed under /usr/local/freesurfer in a subdirectory that matches the package revision yum lists as installed on the system. Subsequent freesurfer rpm packages with higher revision numbers will be recognized by yum as upgrades to be installed on the system.


Setting the environment follows the standard procedure, exporting the path /usr/local/bin/freesurfer/7.0.0-1 for FREESURFER_HOME (here using bash or sh).


Finally, a simple test to see if the freeview application can load a volume.