It won't let you delete most of them even if you tried, only the packages you installed are deletable. Because the extra packages include:
- dependencies - for instance,
python3
package requires vcredist2015
as it can be seen here. vcredist2015
, on the other hand, requires vcredist140
. Then that depends on multiple KB patches and Chocolatey Core Extensions. Etc.
The most common dependencies are Windows patches, Visual redistributables, .NET frameworks and other popular programming environments/runtimes like Java or Python. Read more about this concept in the docs.
Chocolatey has the concept of virtual packages (coming) and meta packages. Virtual packages are packages that represent other packages when used as a dependency. Metapackages are packages that only exist to provide a grouping of dependencies.
A package with no suffix that is surrounded by packages with suffixes is to provide a virtual package. So in the case of git
, git.install
, and git.commandline
(deprecated for .portable
) – git
is that virtual package (currently it is really just a metapackage until the virtual packages feature is complete). That means that other packages could depend on it and you could have either git.install
or git.portable
installed and you would meet the dependency of having git
installed. That keeps Chocolatey from trying to install something that already meets the dependency requirement for a package.
In your case, python
is basically a bit kind of different type of metapackage that you install if you want to later update to the latest Python version, no matter if it's major or minor version change. It doesn't do anything itself, instead it depends on python3
, which depends on a more minor version like python312
and finally that package installs the software.
It's just a way to organize things.