I haven't documented this yet. It's like GNU Stow, but even simpler.
Credit for this idea has to go to Harris Gilliam, who wrote the original version, I know not when. I completely re-wrote it and added some features a while back. It needs to be re-written again; the code is somewhat ugly.
# This script builds a link farm for /usr/local into all the package # directories listed in the file 'srcdirs'. Directories of interest # are listed in the file destdirs. If a line in srcdirs is commented # out with a '#' then links to that directory will be deleted. Broken # links will also be cleaned up when the script is run. # If a real file (or directory) already exists where the link would # go, it is skipped, and the real file is left in place. # The point of the script is to allow the software package 'foo' to be # installed in /usr/local/foo. (I.e. /usr/local/foo/bin/foo, # /usr/local/foo/lib/libfoo.so, /usr/local/foo/include/foo.h) With # many packages this is easily done by using the # --prefix=/usr/local/foo flag at configure-time. Then, this script # creates links to make is seem like it's installed in /usr/local. # Only /usr/local/bin needs to be in the users path, and most software # checks /usr/local/lib for shared libraries, etc. # To add a package, configure it with --prefix=/usr/local/foo, add # "foo" to the file 'srcdirs' and re-run this script. # To temporarily remove a package, just comment out it's entry in # 'srcdirs', and re-run this script. # To permanently delete a package, just delete it's directory and # remove the line in 'srcdirs', and run the script.