Skip to content

Installing Software for Your Research Group

It is quite likely that standard Red Hat-provided software will not meet your needs, e.g. Python version, R version, various Perl modules, etc. In such cases, it is probably best to install them in your group directory.

General Notes

Many packages assume you will be installing on your own computer, and therefore the instructions would not be suitable for installation on a shared computing cluster like Picotte.

Most software packages distributed as source code come with some installation instructions. Here are some things to watch out for.

  • sudo is for running commands as an administrator. You will not be able to do this. Read on for other options.
  • apt-get is used on Ubuntu and other Debian-based Linux distributions. Proteus uses Red Hat, which uses yum. In either case, only administrators are allowed to use those commands, as they install software system-wide.
  • For Python modules, see Python#Installing Your Own Python Modules
  • For R packages, see R#Third-Party R Packages
  • For Perl, use cpan with the local::lib module[1]

Spack on Picotte

If you are installing software on Picotte, we suggest using Spack as it deals with a lot of the non-standard details of many scientific software codebases, and can handle installation and use of multiple compilers and versions of compilers. Spack can also create appropriate modulefiles.

PATH environment variable and ~/bin

Linux looks at the environment variable PATH for a list of directories (separated by colons) which may contain executables. To add a directory to path in a persistent way, such that it happens at every login, modify your ~/.bashrc file:

# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

# User specific aliases and functions
export PATH=~/bin:${PATH}

Installation Details

We suggest the following layout:

  • base install directory:
    • Picotte: /ifs/groups/myresearchGrp/opt
  • which means that standard GNU-like software installation would have
    • Picotte: PREFIX=/ifs/groups/myresearchGrp/opt
  • create your own Module File[2] so that your users may do something like "module load myresearchGrp-python" to load your group's version of Python

Compiling

As mentioned elsewhere,[3] there are many choices to be made when compiling software. If you wish to have code optimized specifically for Intel CPUs, use the Intel Composer XE toolset. For AMD CPUs, use Open64 and the ACML math library. If you don't want to have such specific versions, you should use the GNU compiler (GCC). By default, all users have the Bright-supplied GCC 4.8.1 module loaded.

GNU-style Software

GNU-style software is distributed with a configure script, which queries the system and environment for prerequisites, and appropriate compiler settings. The main one to change is the prefix, which sets the base directory for installation. Following the recommendation above, a typical invocation would be:

[juser@picotte001 somepkg-3.1.2]$ ./configure --prefix=/ifs/groups/myresearchGrp/opt

This should result in the following directories, or some subset:

/ifs/groups/myresearchGrp/opt/bin /etc /include /lib /share

You will have to modify your environment to add the bin directory to PATH, and lib to LD_LIBRARY_PATH. We recommend doing this with a modulefile.[4]

References

[1] Perl local::lib module CPAN page

[2] Environment Modules#Creating Your Own Module Files

[3] Compiling Quick Start Guide

[4]