Chocolatey - kind of like apt-get, but for Windows
- Edit me at https://github.com/chocolatey/choco-wiki
You can just call me Chocolatey.
Let's get Chocolatey!
"I'm a tools enabler, I'm a global silent application installer. I configure stuff. Some people want to call me apt-get for Windows, I just want to get #chocolatey!"
Home: https://chocolatey.org (Backup: http://chocolatey.apphb.com)
Chocolatey is a global PowerShell execution engine using the NuGet packaging infrastructure. Think of it as the ultimate automation tool for Windows. Chocolatey is a package manager that can also embed/wrap native installers and has functions for downloading and checksumming resources from the internet - useful for when you have public packages, but don't have distribution rights for the underlying software that packages represent (seen all the time with publicly available packages on the community repository).
Managing internal and external software is a breeze with Chocolatey! Chocolatey is a single, unified interface designed to easily work with all aspects of managing Windows software using a packaging framework that understands both versioning and dependency requirements. Chocolatey packages encapsulate everything required to manage a particular piece of software into one deployment artifact by wrapping installers, executables, zips, and scripts into a compiled package file. Chocolatey packages can be used independently, but also integrate with configuration managers like SCCM, Puppet, and Chef. Chocolatey is trusted by businesses all over the world to manage their software deployments on Windows. You've never had so much fun managing software!
Chocolatey is beneficial for some of the following reasons:
- You have a single, unified interface for installing, upgrading and uninstalling software on Windows.
- Packages are independent deployment artifacts that can easily be used across technologies like SCCM, Puppet, Chef, etc, but are not tied to those technologies. Developers could still use the same packages locally that are used with SCCM.
- You define dependencies between software so installation order is not a manual process.
- Chocolatey has some really great smarts built-in to be able to handle things like uninstalling software automatically.
- You can easily package your own internal software using technologies you are familiar with (PowerShell).
- Chocolatey has great PowerShell helper functions for many software scenarios, so many times a one line function call is all you need to handle complex installation software.
- You can define any additional functionality a native installer file may have missed setting up for you, such as putting some directory in the PATH variable.
- You control how installs, upgrades and uninstalls are handled.
- Package maintenance is quite simple.
- It makes Windows software easily scriptable.
- FOSS version is completely free with a business friendly license.
- Able to use completely internally building your own packages.
- Hosting your own internal packages is as simple as a file/folder share to as advanced as a custom package gallery - see Hosting your own server.
- Can integrate with SCCM to deliver packages and software out to distribution points.
- Integrates with Puppet, Chef, Ansible, Saltstack and DSC.
- Auditing what is installed (and not just what's in Programs and Features).
- You can build your own internal packages that wrap native installers, but you can build more true package types that have the software in the package. See What are Chocolatey Packages?
Chocolatey is like apt-get, but built with Windows in mind (there are differences and limitations). For those unfamiliar with APT/Debian, think about Chocolatey as a global silent installer for applications and tools. It can also do configuration tasks and anything that you can do with PowerShell. The power you hold with a tool like Chocolatey is only limited by your imagination!
Here's a good short explanation:
Chocolatey is a software management tool that is also a package manager. It functions fantastically well when the runtime software is all included in the package and it doesn't make use of native installers. However to approach the Windows ecosystem a package manager also needs to know how to manage actual software installations, thus why Chocolatey does that as well. For publicly available packages, copyright keeps from having binaries embedded in packages, so Chocolatey is able to download from distribution points and checksum those binaries.
What's the difference between NuGet and Chocolatey? Developers can use NuGet to get 3rd party libraries that they use to build the .NET tools and applications that they release with Chocolatey! But Chocolatey is not just for .NET tools. It's for nearly any Windows application/tool!
Want to learn more?
See It In Action
- Frequently Asked Questions
- Why Chocolatey
- License Acceptance Terms
- Waiver of Responsibility
- Release Notes
- Installing Chocolatey
- Uninstalling Chocolatey
- Getting Started
- Command Reference
- Use Chocolatey to set up source code development environments!
- What distinction does Chocolatey make between an installable and a portable application?
- Creating packages
- Keep in Mind Distribution Rights
- Package Function and Variable Reference
- Outdated packages? Triage process
- Parse PackageParameters Argument
- Mount an Iso in Chocolatey Package
- Deprecate a Chocolatey Package
- Host Your Own Feed
Where are we? Where are we going?
Chocolatey has a Google Groups group. Please join and ask questions and send feedback.
If you have issues with a package (or it is out of date), please use the contact maintainers link on the package page itself. If the maintainer doesn't respond within a given time frame (say a day or two), please refer to the Package Triage Process.
Come join in the conversation about Chocolatey in our Gitter Chat Room
Or, you can find us in IRC on Freenode at #chocolatey.
The Chocolatey Team
You can find all of the members of the Chocolatey Team here.
- Windows 7+/Windows 2003+
- .NET Framework 4.0
- PowerShell 2.0