Over the past couple of months I’ve had a string of challenges with my main PC. I’ve been using this Dell XPS15 for the past few years and this winter it just decided to give up and stop working. Given that it was out of warranty, I had to ship it off to Dell to get fixed and ultimately the machine was returned with a fresh Windows installation and none of my apps or data. (Check out episode 1701 of the Knightwise podcast for the longer version of the story.)
So now that I’ve got a fresh machine, what’s the best way to get things reinstalled? There have been a number of tools over the years to help get that done. I used to use Ninite as my main re-install tool and have for years. This has been a great tool but it has some significant limitations — mainly the number of applications that it supports for installation.
This led me to Chocolatey the package manager for Windows. If you’re familiar with Linux this is, in many ways, a tool similar to apt) or rpm to manage packages on Debian or Redhat systems respectively. On MacOS the most similar tool is Homebrew.
Chocolatey itself is open source and the majority of the packages to install applications are provided my members of the community. This does lead to some duplication (multiple packages for the same app) but it’s not generally a big deal. I was able to find nearly every piece of software I wanted to install in the package list, leaving only a few specific tools to install manually.
If you want an idea of what my installer looks like, check out this gist of the Powershell script to do the installation.
I was able to start the script running and have it pull down and install everything I needed with sensible defaults, and no need to get involved in the installation process. From there I can update the apps with Chocolatey’s built-in upgrade command and patch everything all at once.
All in all this has been an extremely positive experience and saved me at least a couple of hours during the initial installation. With upgrades factored in, this is a no-brainer from a productivity standpoint, and lets the package manager do the work for you.