The investor projects area /projects/<investor_group_name> can be used for investor specific software installations (especially those that will be used by multiple users). This provides a central location for the investor group to manage and maintain software and also frees up disk space in the home directory. Backups for this area are provided via GPFS snapshotsin the event of accidental deletions; however no disaster recovery backups are done.

In addition, a modulefile can be created to set up the changes to a user’s environment needed to access the software. The modulefile can be used to add entries to the standard system environment variables such as PATH, MANPATH, etc., or set environment variables unique to the software.

A basic knowledge of Linux is required for these tasks.

Guidelines for Software Installation

  1. Installation Location

    • The highlighted steps below will only be done once and should be skipped if a common directory for software installations is already in place:
      • Create a common directory for software installations under /projects/<investor_group_name>.
        For example:

           /projects/<investor_group_name>/apps/
        
      • Use the change mode command chmod to set the permissions on this common directory so that group members can create software subdirectories here as well.
           chmod  g+rw  /projects/<investor_group_name>/apps

        The above command adds read and write permissions for group on the apps directory.

      Note: If you do not have write access to your investor group’s project area, contact your technical representative.

    • Create a subdirectory for the software:
         /projects/<investor_group_name>/apps/<software_name>
      

      (if there is a need for multiple versions to be concurrently supported, the structure could be:

         /projects/<investor_group_name>/apps/<software_name>/<version#>)
      
    • Install the software in the subdirectory following the instructions provided with the software.
    • Use the change mode command chmod to recursively set the permissions on the subdirectory where you installed the sofware to allow access to the intended group.
         chmod -R g+rX /projects/<investor_group_name>/apps/<software_name>

      The above command adds read and execute permissions for group where appropiate on all directories and files of the software installation.

    • If you are in multiple groups, verify that the software’s directories and files have the correct group ownership permissions to allow access to the intended group. If needed, the change owner command chown can be use to recursively set the appropriate group owner permissions.
         chown -R :group_name /projects/<investor_group_name>/apps/<software_name>

      The above command recursively changes the group ownership on all of the directories and files of the software installation.

  2. User Environment (Modules)

    • If you are unfamiliar with modules, see an example of a modulefile in use on the campus cluster: mvapich2/2.0b-intel-14.0. You can see basic information about this module with the command:
          module help mvapich2/2.0b-intel-14.0

      and more detailed information with:

          module display mvapich2/2.0b-intel-14.0

      You can see the contents of the modulefile with:

          cat /usr/local/modulefiles/mvapich2/2.0b-intel-14.0
    • The highlighted steps below will only be done once and should be skipped if a modulefiles directory is already in place:
      • We recommend creating a common directory for locating the modulefiles, especially if multiple software packages will be installed/maintained. An example location would be
            /projects/<investor_group_name>/modulefiles/
      • Use the change mode command chmod to set the permissions on this common directory so that group members can create modulefiles here as well.
           chmod  g+rw  /projects/<investor_group_name>/modulefiles

        The above command adds read and write permmissions for group on the modulefiles directory.

    • Create the modulefile named <software_name> (or <software_name>/<version#>) in the modulefiles directory with the general structure provided in the template below.
      Note: By default, read permissions should be set for group on the modulefile (which allows group members to load the software into their user environment).
    • Online information on constructing your own modulefile:
    • Load the software into your environment with the command:
          module load /projects/<investor_group_name>/modulefiles/<software_name>

      If your group will be installing/maintaining multiple software packages, you can make group specific modulefiles available for loading into your environment with:

          module use /projects/<investor_group_name>/modulefiles

      Then load the specific software module into your environment with

          module load <software_name>

      These commands can be issued on the command line to take effect for the current session only, or added to the $HOME/.bashrc to permanently add to your environment.
      See additional information on using modules in the Managing Your Environment (Modules) section of the User Guide.

    • Modulefile templateTo construct your own modulefile, copy the template below and update for your needs.
       
         #%Module1.0####################################################################
         ##
         ##
      
         proc ModulesHelp { } {
           global _module_name
      
           puts stderr "The $_module_name modulefile defines the default system paths"
           puts stderr "and environment variables needed to use the $_module_name"
           puts stderr "libraries and tools."
           puts stderr ""
         }
      
         module-whatis   "Brief description of the software/library."
         set     approot  /installation/location/of/software/on/campuscluster
      
         prepend-path             PATH  $approot/bin
         prepend-path  LD_LIBRARY_PATH  $approot/lib
         prepend-path          MANPATH  $approot/share/man
      
      

      The blue italicized text indicates that investor group will need to fill in these values ( module-whatis lines are optional – these lines provide additional information about the software defined by the modulefile).