Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What's a Chocolatey "Install" package?

On reviewing the chocolatey packages available, I came across a few that have two (or sometimes more) packages apparently for the same product. At first glance is not possible to tell the difference.

For example, there is the AutohotKey package, and then there is also an Autohotkey.install package.

What is the difference between both types of packages?

like image 231
j4v1 Avatar asked Apr 23 '15 15:04

j4v1


People also ask

What are Chocolatey install packages?

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.

What does Choco install do?

Chocolatey or Choco as it is sometimes referred to, is a free, open-source package manager for Windows that is very similar to Apt or DNF in the Linux realm. In other words, this is a program used for installing software via the Windows command line.

Is it required to install Chocolatey?

You don't need Chocolatey in order to do web development. Having Chocolatey makes the automated installation and updating of the applications on your machine easier. By itself, Chocolatey doesn't do anything with regard to updating the underlying operating system.

Where does Chocolatey install packages to?

Chocolatey packages are installed to ChocolateyInstall\lib , but the software could go to various locations, depending on how the package maintainer created the package. Some packages are installed under ChocolateyInstall\lib , others - especially packages that are based on Windows installers (.


1 Answers

Have a look at the FAQ in the Chocolatey wiki here:

https://github.com/chocolatey/choco/wiki/ChocolateyFAQs#what-is-the-difference-between-packages-no-suffix-as-compared-to-install-portable

Quoting from that article:

tl;dr: Nearly 100% of the time, the package with no suffix (autohotkey in this example) is going to ensure the *.install. The package without the suffix is for both discoverability and for other packages to take a dependency on.

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.

Talking specifically about the *.install package suffix – those are for the packages that have a native installer that they have bundled or they download and run.

NOTE: the suffix *.app has been used previously to mean the same as *.install. But the *.app suffix is now deprecated and should not be used for new packages.

The *.portable packages are the packages that will usually result in an executable on your path somewhere but do not get installed onto the system (Add/Remove Programs). Previously the suffixes *.tool and *.commandline have been used to refer to the same type of packages.

NOTE: now *.tool and *.commandline are deprecated and should not be used for new packages.

Want more information? See http://ferventcoder.com/archive/2012/02/25/chocolatey---guidance-on-packaging-apps-with-both-an-install.aspx

like image 171
Gary Ewan Park Avatar answered Oct 11 '22 09:10

Gary Ewan Park