Suppose that gcc-2.6.3 is installed in the /site volume, and we want to add gcc-2.6.4.
We place a file .exclude in /v/site/packages/gcc-2.6.4 that contains the following lines:
When opt_link is run on a client system as part of opt_setup, it will add lines to /opt/.exclude for gcc-2.6.3, as well as a few older versions, if they were not listed in the /opt/.exclude file already.
If opt_setup is started with the -x option, opt_link will remove the link to the /v/site gcc-2.6.3 package from /opt/depot.
Whether or not the -x option is used, when opt_setup runs opt_clean, all the links to the gcc-2.6.3 package from /opt/bin, /opt/man, etc., will be removed. When opt_depot runs, new links will be forged to the gcc-2.6.4 package within days after gcc-2.6.4 is installed. We know that eventually, all the client systems will run opt_setup and make the transition so that we can remove the old software package. There is no need for system administrators to modify the /opt/.exclude files by hand to remove the links to the old software, and no need to keep gcc-2.6.3 around on the server indefinitely.