FWIW, I skirt the whole issue of "what version of <program name here> am I running" with a simple sandboxing technique. I relied heavily on this when I was using ChucK for live performances and absolutely needed to know that all the libraries and executables were self-consistant. First, create a sandbox directory, e.g. $ mkdir ~/chimera $ mkdir ~/chimera/usr $ cd ~/chimera Create ~/chimera/SETUP containing something like this: $ cat > SETUP #!/bin/sh export SANDBOX='/Users/me/chimera' # set the path export PATH=${SANDBOX}/usr/bin:/usr/local/mysql/bin:${PATH} # set the prompt so we know we're in the sandbox export PS1='chimera[\w]$ ' # ... and away we go exec /bin/bash ^D $ chmod +x SETUP Now, whenever you install a library or an executable, put it in $SANDBOX/usr/lib or $SANDBOX/usr/bin. Assuming you have source file distribution (say, in ~/newapp), you can usually do this: $ ~/chimera/SETUP chimera[~]$ cd ~/newapp chimera[~/newapp]$ ./config prefix=$SANDBOX/usr chimera[~/newapp]$ ./make ; make install If it's a well-written config / maker pair, this will put all your executables in your sandboxed directory. Of course, you can create other sandboxes for other major versions. I kept one for each of the previous versions of ChucK. - Rob