Installation in Detail
Chocolatey Package Installation Location
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 (.msi files) - install to the default path of the original installer (which is most likely within
There are also packages for which you can set a custom installation path. These packages (like ruby) use the
$env:ChocolateyBinRoot environment variable. If this variable does not exist, it will be created as
To change this behavior, you can set
$env:ChocolateyBinRoot to an existing folder, e.g.
C:\somestuff. Packages that use the environment variable will then be installed in the given subfolder, e.g.
How Chocolatey Works with Programs, Features, and Existing Installs
Many packages use native software installers, so Chocolatey allows the installer itself to handle install/upgrade/uninstall scenarios.
This means it can work directly with already installed software just by using the
choco install command to make Chocolatey aware of existing software.
You can also pass the
--skip-powershell parameter to allow Chocolatey to install the package without running the code to install the software.
This speaks to the difference between "package" and "software" discussed previously.
Chocolatey Install From Location
By default, Chocolatey installs packages from the Chocolatey Community Repository (CCR). However, you can change this by adding default sources and/or using the
--source switch when running a command.
When you host internal packages, those packages can embed software and/or point to internal shares. You are not subject to software distribution rights like the packages on the CCR, so you can create packages that are more reliable and secure. See What are Chocolatey Packages for more details.