NAME/usr/local/etc/pvswitch.conf - configuration file for pvswitch
program[|envname] key/version executable [info]
Each line consists of at least 3 fields:
The name of the program for which this config line is effective.
E.g. perl if you configure a perl version.
Since the name of the program is also used as part of the environment variable which holds the configuration, it is not possible to use pvswitch to manage programs which contain characters which are not allowed in environment variables. Most prominent example is c++. In such cases you can specify the name which should be used to compose the environment variable by adding a pipe (|) and adding the envname.
When using the envname you must set the correct environment variable as well (e.g. in pvwarp.c++).
The key (typically version) for which this entry is. This is they
key which needs to be specified in the respective environment variable
PVSWITCH_program_VERSION and has to be used with the programver link.
(e.g. perlver). See installation guide for details.
The fully qualified path to the executable for program and the respective
The optional info (until end of line or start of a comment) is
shown when programver is called interactively.
Comments start with a hash sign (#) and go till end of line.
perl default /usr/bin/perl.pvswitch default
perl 5.6.1 /opt/perl/5.6.1/bin/perl
perl 5.8.0 /opt/perl/5.8.0/bin/perl
perl 5.8.1 /opt/perl/5.8.1/bin/perl
# This example configures 4 perl version
# thee perl versions (5.6.1, 5.8.0, 5.8.1) are installed
# in /opt/perl and a version sub directory
# one (default) was originally installed in /usr/bin/perl.
# The default configuration was created by pvconfig.
g++|gplusplus default /usr/bin/g++
# configures a default g++ version, since + is not allowed
# in names of environment variables, there is an envname
# of gplusplus specified. when called, pvswitch will
# use the environment variable PVSWITCH_GPLUSPLUS_VERSION
# to determine which version of g++ to use.
# make sure that the pvswitch.g++ file sets this
# environment variable.
cc|gcc 3.4.0 /usr/bin/cc
gcc|gcc 3.4.0 /usr/bin/gcc
cpp|gcc 3.4.0 /usr/bin/cpp
c++|gcc 3.4.0 /usr/bin/c++
cc|gcc 3.4.1 /opt/gcc/3.4.1/bin/gcc
gcc|gcc 3.4.1 /opt/gcc/3.4.1/bin/gcc
cpp|gcc 3.4.1 /opt/gcc/3.4.1/bin/cpp
c++|gcc 3.4.1 /opt/gcc/3.4.1/bin/c++
# configures gcc, cpp and c++ to be controlled by the same
# environment variable (PVSWITCH_GCC_VERSION).
# very useful to switch a set of programs with only
# one setting. So if you use gccver to change the gcc
# version, the change will also affect c++. Of course
# all programs must be installed in all configured
# versions. further you can make the cc program point
# to the gcc binary for version 3.4.1 as shown above.
AUTHORCopyright (c) 2004 by Markus Winand <>