Currently, there is no way to do what you are asking.
Each Chocolatey package is unique in the sense that it could be a wrapper around an MSI or an EXE, or it could be a simple extraction of a compressed archive to a known location i.e. C:\tools, or it could be a PowerShell module that extracts to PSModulePath, or it could be something completely custom.
This is a side effect of the Windows ecosystem, where there are multiple ways to do the same thing. Chocolatey is trying to bring some sort of order to this by providing a mechanism to at least find all the packages that you want in one place, but there is only so much Chocolatey can do.
If you look at things completely differently, it is possible to pass installation arguments to a Chocolatey package using the following:
https://github.com/chocolatey/chocolatey/wiki/CommandsInstall#installarguments-optional---v09813
This could, in theory, alter the installation arguments of an MSI or EXE based Chocolatey package to change where the files are installed to. You can see an example of this approach being used here:
http://chocolatey.org/packages/VisualStudio2013Ultimate
However, this approach is limited. Not everyone takes the time like Matt to mention the possible installation arguments that are possible, and it is quite a convoluted process to extract the installation arguments that are possible to be sent into an MSI or EXE.
In terms of ChocolateyGUI, and as the current maintainer of that product, I can tell you that it does nothing clever in this area :-). It is simply a wrapper around the command line tools that Chocolatey provides, and aims to make it easier for people who don't like using the command line.
The answer I believe will be, "it depends". :-)
The majority of packages on Chocolatey are simply wrappers to the underlying MSI's and EXE's that you would ultimately be running manually yourself, it just automates the process.
In theory, if you run Chocolatey for a package that is already installed, when the MSI or EXE is run, it should detect that it is already installed, and exit. However, how cleanly this happens will impact on how Chocolatey reacts. If this exits with an error code, Chocolatey will report back that the installation failed, even though it is already installed. If it exits cleanly, Chocolatey will now "know" about the installation, and everything will be happy.
You might get into trouble when the Chocolatey package does "other stuff" as part of the installation, i.e. set registry keys, extract files to certain locations, etc. Depending on how many packages we are talking about there, I personally would be tempted to uninstall them manually and then have Chocolatey do the work.
UPDATE:
In addition to the above, it would be worth checking out the new Licensed Version features of Chocolatey.
Best Answer
I don't know of an answer to your exact question, as creating such a list would require a much better knowledge than mine of how Chocolatey installs products. I would then rather try to comment on the underlying problem you are facing, which is the reason that you asked this question.
It's possible to uninstall a Chocolatey package and all its dependencies using the parameter
-x
(--forcedependencies
) to also uninstall dependencies when uninstalling package(s). The default behavior is not to uninstall dependencies.For example :
With this switch, Chocolatey is supposed to only reduce the dependent count of any one dependency that is shared among several installed packages when one of the packages is uninstalled.
This means that you don't need to know if they have dependencies or not.
If by any bug Chocolatey ever mishandles this feature and uninstalls a dependency while it is still in use by another package, the damage is easily fixed. See the experiments carried out in this Stack Overflow answer.