Choco upgrade, y’all

Chocolatey logo - 11 years old

Chocolatey is a package manager for Windows, like the built-in package managers on Linux, and third-party ones on macOS like Homebrew and MacPorts.

The idea is this: when you’re setting up a machine, you don’t want to have to think about which applications you need installed to get up and running. This could be a server or a development workstation, possibly even a gaming rig. Chocolatey provides an easy way to get a machine configured the way you want it, and fast too.

For example, on my development machine I have the following Chocolatey packages installed (using the command choco list -localonly). While this seems like A Lot™ — as the kids say — a fair number of these packages are dependencies which are installed automatically. The KB (short for Microsoft Knowledge Base) packages are a great example of this.

  • 7zip 21.7
  • 7zip.install 21.7
  • adobereader 2022.001.20085
  • autohotkey.portable 1.1.33.10
  • choco-cleaner 0.0.8.4
  • chocolatey 1.1.0
  • chocolatey-core.extension 1.3.5.1
  • chocolatey-dotnetfx.extension 1.0.1
  • chocolatey-visualstudio.extension 1.10.0
  • chocolatey-windowsupdate.extension 1.0.4
  • chocolateygui 1.0.0
  • curl 7.82.0
  • dotnet-5.0-sdk-1xx 5.0.104
  • dotnet-5.0-sdk-2xx 5.0.212
  • dotnet-6.0-sdk 6.0.201
  • dotnet-6.0-sdk-1xx 6.0.103
  • dotnet-6.0-sdk-2xx 6.0.201
  • dotnet-sdk 6.0.201
  • DotNet4.5.2 4.5.2.20140902
  • DotNet4.6.1 4.6.01055.20170308
  • dotnet4.7.1 4.7.2558.20190226
  • dotnet4.7.2 4.7.2.20210903
  • dotnetcore-3.1-sdk 3.1.417
  • dotnetcore-3.1-sdk-4xx 3.1.417
  • dotnetcore-sdk 3.1.417
  • dotnetfx 4.8.0.20190930
  • git 2.35.1.2
  • git-fork 1.71.0
  • git.install 2.35.1.2
  • github-desktop 2.9.12
  • gittfs 0.32.0
  • hxd 2.4.0.0
  • KB2533623 2.0.0
  • KB2919355 1.0.20160915
  • KB2919442 1.0.20160915
  • KB2999226 1.0.20181019
  • KB3033929 1.0.5
  • KB3035131 1.0.3
  • KB3063858 1.0.0
  • KB3118401 1.0.5
  • microsoft-windows-terminal 1.12.10732.0
  • netfx-4.7.2 4.7.2.0
  • notepadplusplus 8.3.3
  • notepadplusplus.install 8.3.3
  • nuget.commandline 6.1.0
  • powershell-core 7.2.2
  • pwsh 7.2.2
  • resharper-platform 213.0.20220322.123209
  • sql-server-management-studio 15.0.18410.0
  • sysinternals 2022.2.16
  • totalcommander 10.0.0.20210903
  • vcredist140 14.31.31103.20220402
  • vcredist2015 14.0.24215.20170201
  • visualstudio-installer 2.0.2
  • visualstudio2019enterprise 16.11.11.0
  • vscode 1.66.0
  • vscode.install 1.66.0
  • windirstat 1.1.2.20161210
  • wireshark 3.6.3

But, yes, that is a lot of packages, and just thinking about running regular updates is a headache. If these were installed manually, I’d have to go off to each vendor’s website and get updates manually. Luckily, and really the entire point of this, Chocolatey has a very cool feature which I call “upgrade y’all,” where you tell it to upgrade any outdated packages (from an elevated command prompt):

choco upgrade -y all

If I wanted to back up this configuration and deploy it to another machine, I would need to drop the list into a text file somehow, and once Chocolatey is installed on the new machine, tell it to install the things from the text file. Fortunately, Erik Hougaard has written a nifty script to do that for you, leveraging the amazing PowerShell.

Side note: if you want to know the best way to administer SQL Server, check out dbatools.io, a collection of hundreds of free PowerShell commandlets that make your life as a data professional easy, from database migrations to setting up availability groups.

Share your favourite Chocolatey recipes in the comments below and let us know how you jump-start your installs.

Bonus round

  • Check out Boxstarter for automated Chocolatey-based Windows installs.
  • You may not have heard of WinGet (styled winget), which is a similar package manager for Windows 11. Jérémie Bertrand has a great article on switching from Chocolatey to WinGet if you’re interested.

The Chocolatey logo is copyright (c) 2022 Chocolatey Software, Inc.

2 thoughts on “Choco upgrade, y’all

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: