Chocolatey is a package manager for Windows (like apt-get but for Windows). It was designed to be a decentralized framework for quickly installing applications and tools that you need. It is built on the NuGet infrastructure currently using PowerShell as its focus for delivering packages from the distros to your door, err computer.
Chocolatey is brought to you by the work and inspiration of the community, the work and thankless nights of the [Chocolatey Team](https://github.com/orgs/chocolatey/people), with Rob heading up the direction.
You can host your own sources and add them to Chocolatey, you can extend Chocolatey's capabilities, and folks, it's only going to get better.
There are quite a few commands you can call - you should check out the [command reference](https://github.com/chocolatey/choco/wiki/CommandsReference). Here are the most common:
* Help - choco -? or choco command -?
* Search - choco search something
* List - choco list -lo
* Config - choco config list
* Install - choco install baretail
* Pin - choco pin windirstat
* Outdated - choco outdated
* Upgrade - choco upgrade baretail
* Uninstall - choco uninstall baretail
Alternative installation sources:
* Install ruby gem - choco install compass -source ruby
* Install python egg - choco install sphynx -source python
* Install windows feature - choco install IIS -source windowsfeatures
* Install webpi feature - choco install IIS7.5Express -source webpi
For more advanced commands and switches, use `choco -?` or `choco command -h`. You can also look at the [command reference](https://github.com/chocolatey/choco/wiki/CommandsReference), including how you can force a package to install the x86 version of a package.
### Create Packages?
We have some great guidance on how to do that. Where? I'll give you a hint, it rhymes with sticky! [Wiki!](https://github.com/chocolatey/choco/wiki/CreatePackages)
In that mess there is a link to the [Helper Reference](https://github.com/chocolatey/choco/wiki/HelpersReference).
See the version list below for details.
Install-Package chocolatey -Version 0.9.10-beta-20160302
dotnet add package chocolatey --version 0.9.10-beta-20160302
<PackageReference Include="chocolatey" Version="0.9.10-beta-20160302" />
paket add chocolatey --version 0.9.10-beta-20160302
See all - https://github.com/chocolatey/choco/blob/stable/CHANGELOG.md
What will be highlighted:
* Alternative sources (webpi, windowsfeature, cygwin, etc) are back (finally, right?)!
* Use an internal PowerShell host to take advantage of quite a few improvements!
* Introduce managing package templates, reintroduce extensions.
* Talk about using original download file name
* Talk about the improvements in search information
* Talk a little about what's coming with pro
### BREAKING CHANGES
* Only fail automation scripts (chocolateyInstall.ps1) if the script returns non-zero exit code - see [#445](https://github.com/chocolatey/choco/issues/445)
* Fix - Force reinstall, force upgrade, and uninstall should delete the download cache - see [#590](https://github.com/chocolatey/choco/issues/590)
For 445 - the 0.9.8 series would only fail a package with terminating errors. The 0.9.9 series took that a bit further and started failing packages if anything wrote to stderr. It turns out that is a bad idea. Only when PowerShell exits with non-zero (which comes with terminating errors) should the package fail due to this. If you need the old behavior of the 0.9.9 series, you can get it back with a switch (`--fail-on-standard-error` and its aliases) and/or a feature flip (`failOnStandardError`).
For 590 - if you set a custom cache directory for downloads, it will no longer use a "chocolatey" subdirectory under that. You may need to make any adjustments if this is going to affect you.
### KNOWN ISSUES
* [Known Issues](https://github.com/chocolatey/choco/labels/Bug)
* [POSH Host] The handle is invalid - when output is being redirected and a package attempts to write to a filestream - see [#572](https://github.com/chocolatey/choco/issues/572)
* Alternative Sources - see [#14](https://github.com/chocolatey/choco/issues/14)
* [POSH Host] Use Internal PowerShell Host - see [#8](https://github.com/chocolatey/choco/issues/8)
* Manage package templates with a specially named package and special package folder - see [#542](https://github.com/chocolatey/choco/issues/542)
* Use the actual download file name instead of providing one - see [#435](https://github.com/chocolatey/choco/issues/435)
* Support for custom headers - see [#332](https://github.com/chocolatey/choco/issues/332)
* [Security] Show moderation-related information in search results - see [#493](https://github.com/chocolatey/choco/issues/493)
* New Helper - Get-ToolsLocation helper (replacement for Get-BinRoot) - see [#631](https://github.com/chocolatey/choco/issues/631)
### BUG FIXES
* [Security] Fix - Only load the Chocolatey PowerShell module from a known location - see [#560](https://github.com/chocolatey/choco/issues/560)
* [Security] Fix - Package source authentication at http://location/path doesn't also use http://location/ (base url) - see [#466](https://github.com/chocolatey/choco/issues/466)
* [Security] Fix - When defining a proxy without credentials - proxy password is shown in plain text - see [#503](https://github.com/chocolatey/choco/issues/503)
* Fix - Force should set allow-downgrade to true - see [#585](https://github.com/chocolatey/choco/issues/585)
* Fix - Do not use NuGet package cache - see [#479](https://github.com/chocolatey/choco/issues/479)
* Fix - Pack doesn't include chocolatey-specific metadata - see [#607](https://github.com/chocolatey/choco/issues/607)
* Fix - TEMP environment variable is 8.3 Path on some systems - see [#532](https://github.com/chocolatey/choco/issues/532)
* Fix - `$packageName` should be present for zip uninstalls in uninstall script template - see [#534](https://github.com/chocolatey/choco/issues/534)
* Fix - Debug/Verbose messages not logged in automation scripts (chocolateyInstall.ps1) - see [#520](https://github.com/chocolatey/choco/issues/520)
* Fix - Escape log output for variables that have data from external sources - see [#565](https://github.com/chocolatey/choco/issues/565)
* Fix - Choco new silentargs can't pass in args in the param=value format - see [#510](https://github.com/chocolatey/choco/issues/510)
* Fix - Exception if no source is enabled - see [#490](https://github.com/chocolatey/choco/issues/490)
* Fix - Chocolatey command help output written to standard error instead of standard out - see [#468](https://github.com/chocolatey/choco/issues/468)
* Fix - Logger doesn't clear cached NullLoggers - see [#516](https://github.com/chocolatey/choco/issues/516)
* Fix - DISM "/All" argument in the wrong position - see [#480](https://github.com/chocolatey/choco/issues/480)
* Fix - Pro - Installing/uninstalling extensions should rename files in use - see [#594](https://github.com/chocolatey/choco/issues/594)
* Fix - Running Get-FileName in PowerShell 5 fails and sometimes causes package errors - see [#603](https://github.com/chocolatey/choco/issues/603)
* Fix - Merging assemblies on a machine running .Net 4.5 or higher produces binaries incompatible with .Net 4 - see [#392](https://github.com/chocolatey/choco/issues/392)
* Fix - API - Incorrect log4net version in chocolatey.lib dependencies - see [#390](https://github.com/chocolatey/choco/issues/390)
* [POSH Host] Fix - Message after Download progress is on the same line sometimes - see [#525](https://github.com/chocolatey/choco/issues/525)
* [POSH Host] Fix - PowerShell internal process - "The handle is invalid." - see [#526](https://github.com/chocolatey/choco/issues/526)
* Fix - Verbose shows in output on debug switch - see [#611](https://github.com/chocolatey/choco/issues/611)
* Fix: Get-ChocolateyUnzip captures files that don't belong to the package - see [#616](https://github.com/chocolatey/choco/issues/616)
* Fix: Package succeeds but software install silently fails when Install-ChocolateyInstallPackage has the wrong arguments - see [#629](https://github.com/chocolatey/choco/issues/629)
* AutoUninstaller is on by default - see [#308](https://github.com/chocolatey/choco/issues/308)
* Unset Configuration Values - see [#551](https://github.com/chocolatey/choco/issues/551)
* Ability to run "choco upgrade all" ignoring specific packages - see [#293](https://github.com/chocolatey/choco/issues/293)
* Extensions enhancements - see [#588](https://github.com/chocolatey/choco/issues/588)
* Show human-readable file sizes when downloading - see [#363](https://github.com/chocolatey/choco/issues/363)
* [Security] Warn about environment changes - see [#563](https://github.com/chocolatey/choco/issues/563)
* Warn when execution timeout has elapsed - see [#561](https://github.com/chocolatey/choco/issues/561)
* Update nuspec to make it easier to get started - see [#535](https://github.com/chocolatey/choco/issues/535)
* Suppress verbose output to verbose - like with 7-zip - see [#476](https://github.com/chocolatey/choco/issues/476)
* Choco push moderation message only on push to dot org - see [#601](https://github.com/chocolatey/choco/issues/601)
* Allow tools/bin root to be root of the drive again - see [#628](https://github.com/chocolatey/choco/issues/628)
* Pro - Also check for license in User Profile location - see [#606](https://github.com/chocolatey/choco/issues/606)
* Pro - Set download cache information if available - see [#562](https://github.com/chocolatey/choco/issues/562)
* Pro - Allow commands to be added - see [#583](https://github.com/chocolatey/choco/issues/583)
* Pro - Load/Provide hooks for licensed version - see [#584](https://github.com/chocolatey/choco/issues/584)
* Pro - On valid license, add pro/business source automatically - see [#604](https://github.com/chocolatey/choco/issues/604)
* API - Add the ability to retrieve package count for a Source - see [#431](https://github.com/chocolatey/choco/issues/431)
* API - Chocolatey Lib still marks vital package information as internal - see [#433](https://github.com/chocolatey/choco/issues/433)
* API - Add paging to list command - see [#427](https://github.com/chocolatey/choco/issues/427)
This package has no dependencies.
NuGet packages (2)
Showing the top 2 NuGet packages that depend on chocolatey:
Add support for using native node modules with Edge.js
Git for Windows focuses on offering a lightweight, native set of tools that bring the full feature set of the Git SCM to Windows while providing appropriate user interfaces for experienced Git users and novices alike. ## Features * **Git BASH**: Git for Windows provides a BASH emulation used to run Git from the command line. *NIX users should feel right at home, as the BASH emulation behaves just like the "git" command in LINUX and UNIX environments. * **Git GUI**: As Windows users commonly expect graphical user interfaces, Git for Windows also provides the Git GUI, a powerful alternative to Git BASH, offering a graphical version of just about every Git command line function, as well as comprehensive visual diff tools. * **Shell Integration**: Simply right-click on a folder in Windows Explorer to access the BASH or GUI. ## Package parameters - `/GitOnlyOnPath` - Puts gitinstall\cmd on path. This is also done by default if no package parameters are set. - `/GitAndUnixToolsOnPath` - Puts gitinstall\bin on path. This setting will override `/GitOnlyOnPath`. - `/NoAutoCrlf` - Ensure _'Checkout as is, commit as is'_. This setting **only affects new installs**, it will not override an existing `.gitconfig`. - `/WindowsTerminal` - Makes `vim` use the regular Windows terminal instead of MinTTY terminal. - `/NoShellIntegration` - Disables open GUI and open shell integration ( _"Git GUI Here"_ and _"Git Bash Here"_ entries in context menus). - `/NoGuiHereIntegration` - Disables open GUI shell integration ( _"Git GUI Here"_ entry in context menus). - `/NoShellHereIntegration` - Disables open git bash shell integration ( _"Git Bash Here"_ entry in context menus) - `/NoCredentialManager` - Disable _Git Credential Manager_ by adding `$Env:GCM_VALIDATE='false'` user environment variable. - `/NoGitLfs` - Disable Git LFS installation. - `/SChannel` - Configure Git to use the Windows native SSL/TLS implementation (SChannel) instead of OpenSSL. This aligns Git HTTPS behavior with other Windows applications and system components and increases manageability in enterprise environments. Example: `choco install git.install --params "/GitAndUnixToolsOnPath /NoGitLfs /SChannel /NoAutoCrlf"` ## Notes - The package uses default install options minus cheetah integration and desktop icons. Cheetah prevents a good upgrade scenario, so it has been removed.
GitHub repositories (4)
Showing the top 4 popular GitHub repositories that depend on chocolatey:
A code coverage tool for .NET 2 and above (WINDOWS OS only), support for 32 and 64 processes with both branch and sequence points
ReportGenerator converts coverage reports generated by OpenCover, dotCover, Visual Studio, NCover, Cobertura, JaCoCo, Clover, gcov or lcov into human readable reports in various formats.
Windows tail program and log file analyzer.
Azure DevOps Migration Tools allow you to migrate Teams, Backlogs, Tasks, Test Cases, and Plans & Suits from one Project to another in Azure DevOps / TFS both within the same Organisation, and between Organisations.