Linux Software Modules

Environmental modules for Linux software installations

A large amount of software available to managed Engineering Linux computers is available via environment modules. These modules allow Engineering IT to distribute large software packages without having to install the software on individual machines. They also allow Engineering Linux users access to multiple versions of popular software, such as Mathematica or MATLAB.

List of Linux Software Modules

How to use the Software Module System



module avail

To see what additional software modules are available, use the 'module avail' command:

[root@dcl-l440-23 ~]# module avail


--------------------------------------------------------------- /etc/modulefiles/ews_software ---------------------------------------------------------------
   OOF2/2.2.2                  ansys/2022r2                    cuda-toolkit/11.6        lmutil/11.18.3                   python3/3.10.0
   OOF2/2.3.3           (D)    ansys/2024r1             (D)    gcc/9.2.0                logic-synthesis-SIS/1.3.6        texlive/2024
   Synopsys_x86-64/2021        berkely-abc/2024.03.06          gcc/12.3.0        (D)    logic-synthesis-SIS/1.4   (D)    thermocalc/2022b
   Synopsys_x86-64/2022        cadence/2023-05                 gdb/8.2.1                mathematica/10.2                 thermocalc/2024b (D)
   Synopsys_x86-64/2024 (D)    cadence/2024-08          (D)    gwyddion/2.66            matlab/R2024a                    xilinx/2023.1
   ads/2022                    calibre/aok_2024.1_28.16        lc3tools/12              matlab/R2024b             (D)    xilinx/2024.1    (D)
   ads/2025             (D)    calibre/aok_2025.2_14.11 (D)    llvm/15.0.7              ovito/2.6.1


The above list is constantly changing and may not reflect the actual modules currently available on Linux instructional (EWS) computers. If you need a software that is not listed for your class please contact your instructor and/or course staff so that they can request any additional software necessary for your course. 

module load

If the software you need to use has a module available for it, use the 'module load' command to load it. For instance, if you wanted to load Mathematica you would use 'module load mathematica':

[root@dcl-l440-23 ~]# module load mathematica

module list

To see what modules you currently have loaded, use the 'module list' command:

[root@dcl-l440-23 ~]# module list


Currently Loaded Modules:
  1. xilinx/2024.1

  2. mathematica/10.2

  3. cadence/2024-08



That's all it takes to load a module and you may immediately begin using the software. Note that you do not need to use the full module name of software/version that is displayed through module avail unless you are trying to load a specific version of the software. In the example above, 'module load mathematica' and 'module load mathematica/10.2' would mean the same thing.

module unload

When you are no longer using a particular software module, you may 'remove' it by using the 'module unload' command:

[root@dcl-l440-23 ~]# module unload mathematica


as you can see from the module list below mathematica is no longer loaded.

[root@dcl-l440-23 ~]# module list

Currently Loaded Modules:
  1. xilinx/2024.1
  2. cadence/2024-08

Although it is not necessary to unload modules when you are no longer using the software, by doing so you can switch between multiple versions of software while keeping your environment clean and consistent.

Loading different software version modules

Several of the software packages available as modules have multiple versions of the software available. Take a look at Synopsys, for example:

[root@dcl-l440-23 ~]# module avail

--------------------------------------------------------------- /etc/modulefiles/ews_software ---------------------------------------------------------------     Synopsys_x86-64/2021 Synopsys_x86-64/2022 Synopsys_x86-64/2024 (D)

When you issue a 'module load Synopsys_x86-64' command the version of Synopsys that will load is indicated by the default descriptor next to it, shown here as (D). In this case Synopsys_x86-64/2024 will be loaded. If you wish to use another available version, you must use the full module name. If you were to load /2021 you would use 'module load Synopsys_x86-64/2021'.



Loading the default version:

[root@dcl-l440-23 ~]# module load Synopsys_x86-64

[root@dcl-l440-23 ~]# module list

Currently Loaded Modules:
  1. xilinx/2024.1
  2. cadence/2024-08
  3. Synopsys_x86-64/2024
    
    


Loading a specific version:

[root@dcl-l440-23 ~]# module load Synopsys_x86-64/2021

[root@dcl-l440-23 ~]# module list

Currently Loaded Modules:
  1. xilinx/2024.1
  2. cadence/2024-08 
  3. Synopsys_x86-64/2021
    

module switch

If you currently have one version of a module loaded and wish to use another, you may use the shorthand 'module switch' command rather than unloading the old version's module and loading loading the new one. The syntax for this is 'module switch currentmodule newmodule'.

[root@dcl-l440-23 ~]# module switch Synopsys_x86-64/2021 Synopsys_x86-64/2024


The following have been reloaded with a version change:

Synopsys_x86-64/2021 => Synopsys_x86-64/2024

[root@dcl-l440-23 ~]# module list


Currently Loaded Modules:
  1. xilinx/2024.1 
  2. cadence/2024-08 
  3. Synopsys_x86-64/2024
    
    

non-module software

Some packages are installed on your system directly without the need to use modules. This includes most of the dependencies that the software modules may have, or smaller or more common packages available in the yum repositories, such as gcc and make.



Keywords:
linux Linux software modules 
Doc ID:
81201
Owned by:
Gianni P. in Engineering IT
Shared Services
Created:
2018-03-28
Updated:
2025-07-18
Sites:
University of Illinois Engineering IT