Chocolatey: What is it?
Hi, I’m Rob Reynolds, senior software engineer at Puppet Labs. As part of the Windows team, my primary focus here is making the Puppet on Windows experience great. I also created a little tool called Chocolatey, a package manager for Windows that people seem to like. This blog post is the first in a series on Chocolatey, but before I start, a little bit about its history and the person who created it.
I’ve been programming in .NET since the early days of 1.0. I’m also a 5-time Microsoft Most Valuable Professional for Visual C# (aka C# MVP) and most recently a .NET MVP, ASPInsider, C# Insider, and an MCSD for .NET. In addition to Puppet and Chocolatey, I manage a few other OSS projects, including UppercuT and RoundhousE. I also eat my Wheaties and speak at a few conferences every year.
I started working on Chocolatey just over four years ago. My first commit was on March 21, 2011. At that time it was just an idea, an experiment. Since then it has sparked into a full framework and community that continues to grow exponentially year after year! To date, the packages available on Chocolatey.org (the community feed) have had over twelve million downloads. Over 2014 Chocolatey usage jumped from 1.6 million total community feed downloads to almost 9 million, thanks to support from Microsoft and the community!
What is Chocolatey?
Chocolatey is a package manager for Windows that builds on top of existing Windows technologies, using NuGet for packaging. A package manager, for those not familiar, is a way to get software onto your machine without much work on your part. It’s the Windows equivalent of yum or apt-get. Chocolatey downloads applications from their official distribution point and then installs, upgrades, uninstalls and configures them silently on your machine, including dependencies, per the instructions in the package.
For example, let’s say you need to install Git. You could do this manually, which would requiring learning where to download from, deciding what you need, downloading, unblocking and next next next. Or, you could run one command in Chocolatey and go get coffee while it does all the work for you. Chocolatey makes all of the decisions — it gets the dependent applications, and even configures your machine properly.
The real power of Chocolatey isn’t in the one-time install of a package; it’s in Chocolatey’s ability to keep all of your software up to date. Let’s say you need to upgrade several applications for security updates. Instead of manually upgrading every piece of the software on your system, with Chocolatey you can run a single command —
choco upgrade all -y— and go do something more important.
Stay tuned for more Chocolatey goodness!
Rob Reynolds is a senior software engineer at Puppet Labs.
- Attend my talk DevOps: Chocolatey Goodness next week at .NET Fringe in Portland, Tuesday, April 14 2:50 PM - 3:20 PM
- Get the latest docs at Chocolatey.org.
- Watch my PuppetConf 2014 talk: Plugging Chocolatey into Your Puppet Infrastructure