1

On opening the choco lib folder, I can see a lot of files. The only stuffs I remember installing were python and ffmpeg, and Chocolatey of course. But what are the rest? And there are 3 instances of Python? Can I delete them?

C:\ProgramData\chocolatey\lib>choco list -lo
Chocolatey v1.1.0
chocolatey 1.1.0
chocolatey-compatibility.extension 1.0.0
chocolatey-core.extension 1.4.0
chocolatey-windowsupdate.extension 1.0.4
ffmpeg 6.0
KB2919355 1.0.20160915
KB2919442 1.0.20160915
KB2999226 1.0.20181019
KB3033929 1.0.5
KB3035131 1.0.3
python 3.11.4
python3 3.11.4
python311 3.11.4
vcredist140 14.32.31326
vcredist2015 14.0.24215.20170201
15 packages installed.
3
  • 2
    Does this answer your question? How to clear Chocolatey cache in the free version?
    – harrymc
    Jul 20, 2023 at 10:58
  • Even after running the Choco Cleaner bat file all the previous files are still there :(
    – Shub
    Jul 20, 2023 at 15:22
  • That's not a duplicate of this. Although I can see where the confusion may come from as the question was very poorly phrased.
    – Destroy666
    Jul 21, 2023 at 0:45

1 Answer 1

4

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.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .