Compute Canada

How do I use "use"?

Please note: The FAQ pages at the HPCVL website are continuously being revised. Some pages might pertain to an older configuration of the system. Please let us know if you encounter problems or inaccuracies, and we will correct the entries.

Most setup consists of the setting of environment variables. These are variables that are used by your shell to determine its desired behavior. Other setup operations might include the execution of scripts. To simplify this task, our system supplies the use command. The manual setting of environment variables (such as PATH, for instance) is replaced by typing:

use package_name

where package_name stands for an application or functionality that you want to include in your setup. A list of possible package_names can be obtained by typing:

use -l

Here is an example: In order for you to be able to use the programs in the Blastwave distribution, you would need to add the /opt/csw/bin directory to your PATH variable, the /opt/csw/share/man directory to your MANPATH variable, and the /opt/csw/share/info directory to your INFOPATH variable. Instead of doing this, you can also just type useblastwave. Note that Blastwave is included in the default user setup, and is used here only as an example.

The use command will also work inside of your login setup file, e.g. .login for a csh. This makes it possible to apply the setting permanently, and you won't have to retype the use command every time you log in (which would defeat the purpose). By default, users are supplied with a reasonable setup that corresponds to use standard-user-settings, and includes access to most system functions, Cluster Tools, Grid Engine, Sun Studio compilers, and a few "extras".

However, if you invoke a shell from the command prompt or by executing a script, the new shell will not know about the use command. You either have to setup that shell "manually", or source a file to teach the shell about use. This can be done with a single line: source /opt/usepackage/share/usepackage/use.csh (for csh, tcsh, etc.) . /opt/usepackage/share/usepackage/use.ksh (for sh, ksh, etc.) . /opt/usepackage/share/usepackage/use.bsh (for bash) Note that it is rarely necessary to make invoked shells aware of use, as they inherit the setup of the invoking (login) shell.