Chocolatey: A package manager for Windows

By Curtis Collicutt, Cloud Developer, Edmonton
I have worked my entire career as a Unix/Linux systems administrator, so it was a challenge when I started working at Cybera and was placed on the Virtual Computing Lab (VCL) project.

VCL, though running on top of OpenStack, is currently providing students with access to 100% Windows 7 based virtual machine instances. Some day, when a class calls for it, I'€™m sure we'€™ll provide students with access to Linux images, but for now it'€™s completely Windows.

This means that I'€™ve had to learn a lot about the Microsoft ecosystem, and considering I haven'€™t used Microsoft operating systems since Windows NT, there is a lot of information to cover.

During the learning process one of the more interesting projects I'€™ve come across is Chocolatey, which is an apt-get or yum-like software package manager '€” but for Windows!

Package Managers

One of the best things about Linux distributions such as RedHat, Ubuntu, or Arch Linux, among others, is their software package managers. For example, in RedHat and Ubuntu installing software (such as the git source code management system) is as easy as:

$ apt-get install git # in Ubuntu


$ yum install git # in Redhat

and now, with Chocolatey, it'€™s just as simple on Windows too!

C:> cinst git

Here'€™s an example of how to install git via Chocolatey:

Installing Chocolatey

Getting Chocolatey itself up and running is relatively quick and painless, assuming you have .NET 4.0 already installed. It'€™s a simple cut-and-paste powershell command, as described right on the front page of the Chocolatey website:

C:> @powershell -NoProfile -ExecutionPolicy unrestricted -Command "iex ((new-object net.webclient).DownloadString(''))" && SET PATH=%PATH%;%systemdrive%chocolateybin

Currently, Chocolatey has 705 packages that can be installed from its repository, including such exotic systems as node.js. I'€™m sure that number will grow as more people begin using Chocolatey.

Why Chocolatey?

I'€™m experimenting with Chocolatey to see if I can integrate it with the veewee virtual machine image building system, to make it easier to install software into automated Windows builds. This is an effort to get away from '€œgolden images'€ '€” which I am not a fan of '€” towards virtual machine images that can be automatically (and quickly) built in a scripted, perhaps daily, process. If I can use Chocolatey to install or package software for Windows, it will help to make part of this build process easier.

As always, suggestions and criticisms are welcome in the comments. 🙂