software-intro(1) USER COMMANDS software-intro(1) NAME software-intro - introduction to .software tools DESCRIPTION `.Software' is a set of tools which enable user's to custom- ize their paths simply, using application keys and macro groupings instead of obscure environment variables. The applications available in the user's environment is indepen- dent of the shell used, and the user's environment is automatically updated when the system software installation is modified. Also, the environment is modified to work correctly over different architectures, even if the software is installed differently. Users' environments by default are able to run the latest stable versions of all software packages which are installed on any supported platform. Users can modify the order of package inclusion, to allow them to prefer certain software behaviors (BSD vs SYSV, GNU vs system compilers, etc.). Additionally, users can run older packages by specifying the package version number explicitly before the default (for example autoconf-1.7 instead of autoconf-2.12, or perl-4.036 instead of perl-5.004_01). Also, users can use non-supported software by explicitly adding PATH, MANPATH, or other environment variables explicitly, again in a shell- independent manner. Customizing Your Environment with .Software The main environment customization has been moved into a shell-independent file located in the home directory called .software. The .software file contains software keys, software macros, PATH strings, MANPATH strings, environment strings, and ARCH and HOST conditionals. The most commonly used strings in the .software file are software keys and macros. Keys are symbolic names for some collection of PATH, MANPATH, and other environment variable assignments. These names refer to specific software pack- ages. Macros are symbolic names (beginning with the '@' character) for groups of keys. Macros and keys are expanded to the definitions in the global software database. The default .software file contains a single macro, '@default' which expands to all supported packages, along with the architecture-specific system paths, '$HOME/bin', and '.' A listing of software keys and their descriptions can be obtained by running the software(1) script. In addition to software keys and macros, the .software file can also contain explicit PATH, MANPATH, and environment variable settings. The syntax for this is: PATH= Add the string to the PATH environment vari- able. MANPATH= Add the string to the MANPATH environment variable. = Assigne the value to the environment variable. where words enclosed by '<>'s are replaced with actual vari- able names and values. Finally, the .software file can contain environment vari- ables which are set based on the architecture or machine on which the user's shell is running. The syntax for these con- ditional statements is: ARCH=:: Which adds the string to the PATH environment variable and the string to the MANPATH environment variable if the ARCH environment variable is set to . HOST=:: Which adds the string to the PATH environment variable and to the MANPATH environment vari- able if either the HOST or HOSTNAME environment vari- able is set to . .Software Commands There are two user-level commands which are especially use- ful for manipulating the software environment with .Software. The software(1) command will list software keys which match a user-specified pattern, or list all software keys and a quick introduction to .software syntax. The resoft(1) command can be used to force a rebuild and reload of the user's software environment. FILES $HOME/.software The user's .software file. $HOME/.software-cache.sh, $HOME/.software-cache.csh The software caches created from the .software file and the system databse. MCS Last change: 23 Sep 1997 2 software-intro(1) USER COMMANDS software-intro(1) /software/common/adm/etc/sw.database The global software database used to build the .software-cache files. /software/common/adm/etc/software-env.sh Bourne and Korn shell hooks to .software. /software/common/adm/etc/software-env.csh C-shell hooks to .software. SEE ALSO software(1), resoft(1), make-sw-cache(8), make-sw-db(8), make-auto-db(8) AUTHOR Ivan Judson, Remy Evard, Joe Bester