Weekly Journal 59 - Windows, scoop, winget

tl;dr

I have to convert my work laptop from Linux to Windows and I get a chance to try out the latest Windows package managers.

Back to Windows

I have been running a Linux desktop for the past four years at work. This year we are building up our compliance posture related to some new projects and customer requirements. Those requirements mean we need to have more robust endpoint management and centralized control of our company-issued laptops. Unfortunately, there isn’t a lot of support for Linux desktops for the tools we need to meet our compliance needs. Since there are only a few of us running Linux on the desktop, it made more sense to have us convert to either Windows or Mac laptops instead. I’m way more familiar with Windows, and I personally find WSL2 to be a better Linux option than running a virtual machine, so I chose a Windows 10 laptop.

As a part of this exercise, I have been experimenting with some of the newer Windows package managers to install the developer tools I use on a daily basis. Some programs, like Vivaldi and VS Code, have automatic update features built-in, so I didn’t bother using the package manager with them. For everything I am attempting to use either Scoop or Winget to help me keep track of what is installed, and to keep everything current.

Scoop

First up is Scoop. Scoop is interesting because it specializes in CLI tools, and it installs everything under your user home directory. It has a feature where it creates “shims” to its installation directory so that everything appears in your path and everything is accessible from a terminal like you would expect. I use Scoop to install a number of my favorite CLI development tools like git, gpg, Neovim, and direnv.

Most of the tools packaged by Scoop are the kinds of things that ship in a plain old ZIP archive. There is some support for graphical programs that use MSI installers, but it really shines when all it needs to do is unzip an archive and copy files into place.

Winget

The other package manager I am working with is Winget. Microsoft has made Winget a built-in part of Windows 10 and 11 so as long as you are current with updates you should already have it installed. In many ways it reminds me of Chocolatey1. It has access to a wide variety of Windows tools and software, including many graphical tools and other software that ships in MSI form. I’m using it to install the AWS CLI tool and a few other utilities. My only complaint so far is I don’t think it has an “update all installed packages” option. I have to tell it to upgrade each package individually. Other than that, it has been working great so far.

What’s Next?

Figuring out how to get Windows SSH working, and maybe actually doing the Python scripting I wanted to do last week.

1: Full disclosure: I was a Kickstarter backer many years ago for Choclatey and I use it on my personal Windows laptop.