Updated 2021-05-17

Locally Installing Software on the Cluster


  • This guide will allow you to install software that isn't already available on the cluster by extracting a tarfile. To see what software is available on the cluster, run module avail.

Installing the Tarfile

  • Log in to the cluster normally.
  • Start by using wget followed by the link to a tarfile (also referred to as a Gzipped source tarball) to download it.
  • Extract the tarfile with tar zxvf followed by the full name of the tarfile (including the extension)
  • cd into the directory generated by the step above.
  • Using ls to check, if there is not already a configure file, you can generate one with autoconf.
  • Run the ./configure file with a prefix to the directory you'd like to install it to: ./configure --prefix=/some/other/directory. You can use pwd to find the current directory you are in if that is your desired location. This step may produce a large amount of output.
  • Use make to start the build process. This will also produce a large amount of output.
  • Optional: you can run make test to make sure everything works. Note that this will take a long time, so if you believe that the software you are downloading is reliable, you can skip this.
  • Finally, use make install to finish up, generating a lot more output.
  • Once this is complete you have successfully installed the software.

Using the Installed Software

  • If you want to begin using the software right away, you must specify the full path to the software. To find the full path you can navigate to the directory where the executable is and run pwd. The full path is the output from pwd followed by /ExecutableName (replace ExecutableName with the name of your executable file).
  • If you want to set the executable to run with a simpler command, you can set up an alias by using alias <Short Keyword>=<Full Path Name>.


An alias will only last for the span of the session. You will have to create the alias again if you log in again to the cluster.

Turning Installed Software into a Private Module


Currently, we only provide instructions for creating private modules on RHEL6.

  • Please visit the Create Private Modules section under the Module Guide page.


  • For this example, we will be extracting a tarfile containing Python 3.5.0.
  • We start with wget:
[svemuri8@login-s1 ~]$ wget https://www.python.org/ftp/python/3.5.0/Python-3.5.0.tgz
--2019-06-12 14:13:13--  https://www.python.org/ftp/python/3.5.0/Python-3.5.0.tgz
Resolving www.python.org..., 2a04:4e42:2c::223
Connecting to www.python.org||:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 20053428 (19M) [application/octet-stream]
Saving to: `Python-3.5.0.tgz'

100%[=================================================================================================================================>] 20,053,428  53.0M/s   in 0.4s

2019-06-12 14:13:15 (53.0 MB/s) - `Python-3.5.0.tgz' saved [20053428/20053428]
  • Next, we extract the tarfile:
[svemuri8@login-s1 ~]$ tar zxvf Python-3.5.0.tgz
  • There will now be a directory called Python-3.5.0
  • cd into the directory:
[svemuri8@login-s1 ~]$ cd Python-3.5.0
  • We can find the current directory with pwd:
[svemuri8@login-s4 Python-3.5.0]$ pwd
  • Next we run ./configure --prefix=/nv/hp16/svemuri8/Python-3.5.0.
  • Then the make command.
  • And then the make install command.
  • Running ls now will show that there is a python executable among many other files in the directory.
  • To run the python executable, we can simply specify the path and use python however we'd like:
[svemuri8@login-s4 Python-3.5.0]$ /nv/hp16/svemuri8/Python-3.5.0/python -V
Python 3.5.0
[svemuri8@login-s4 Python-3.5.0]$ /nv/hp16/svemuri8/Python-3.5.0/python
Python 3.5.0 (default, Jun 12 2019, 15:13:10)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-16)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> print ("Hello World!")
Hello World!
[1]+  Stopped                 /nv/hp16/svemuri8/Python-3.5.0/python
[svemuri8@login-s4 Python-3.5.0]$
  • To make it run with just python, we'll set up an alias:
[svemuri8@login-s4 Python-3.5.0]$ alias python=/nv/hp16/svemuri8/Python-3.5.0/python
[svemuri8@login-s4 Python-3.5.0]$ python
Python 3.5.0 (default, Jun 12 2019, 15:13:10)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-16)] on linux
Type "help", "copyright", "credits" or "license" for more information.

External Resources