Environment Variables

These environment variables are set by sourcing setup-env.

LD_LIBRARY_PATH

This is where the system's shared-library loader looks for shared libraries before looking in the system's default shared-library directories (usually /lib, /usr/lib, /usr/local/lib, and /usr/X11R6/lib).

It should contain the two Wigwam library directories, and they should be in this order:
         LD_LIBRARY_PATH=$PLAYPEN_ROOT/lib:$PLAYPEN_ROOT/ext/lib
This allows projects to override the shared libraries installed by packages, since packages will install their libraries in $PLAYPEN_ROOT/ext/lib, and project developers will work in $PLAYPEN_ROOT/lib.)

PATH

This is the list of directories where the Unix operating system searches for executables if they don't have a "/" in the name.

It should always start with:
         PATH=$PLAYPEN_ROOT/bin:$PLAYPEN_ROOT/ext/bin:...
This allows projects to override binaries installed by packages.

In general, you should not need to set "global" environment variables, but if you need them for development, you may add them to anywhere that load-config will source. See the Section called Scripts to Load Certain Configurations into sh-variables in Appendix B for the details.

You must also set interactive_variables to the names of the variables you want to export in to the user's shell. [1]

Generally, you should put environment variables in one of the following places instead. These variables are only set by sourcing the load-config shell script, but that is done automatically by Wigwam for running, building and installing. If you need to run a single command with all the cluster and role environment variables set, you may use wigdo.

etc/roles/ROLE/config

If the variable only applies to a particular role.

etc/roles/CLUSTER/config

If the variable only applies to a particular cluster.

etc/project.conf

If the variable applies cluster-wide.

Packages, however, may not directly set environment variables, yet; instead use service_required_envars and service_optional_envars from the service startup scripts and later the configuration tool will use the descriptions to make an interface to set these.

Note that in Wigwam, we recommend using all-capital names for environment variables and all-lowercase names for sh-variables which are not exported. Not exporting lowercase environment variables makes it easier for scripts to work recursively, and generally without side-effects. Be very clear in your documentation about variables you require to be exported.

Notes

[1]

The reason for using interactive_variables instead of sourcing a sh-script directly, is for greater control and also for allowing csh users to access those environment variables.