Winget - The Windows (Package Manager) gets it all

Updated: June 1, 2020

The concept of package management - focused around a centralized location where users can grab all their applications - isn't new or novel, and it certainly didn't start with mobile operating systems. This is something that has existed in Linux for years, and eventually morphed into application stores. Apple has one, Google has one, and Microsoft, well, it kind of has one.

Alas, it doesn't target the primary audience of Windows - the bazillion desktop users. I was a huge fan of Windows Phone - I still proudly own a few, from Lumia 520 to Lumia 950 - but the straw that burned the entire field was the lack of popular applications in the Microsoft Store. Combined with the fact Windows users would get their software in individual bits and pieces, from this and that site, the end result was: almost no traction in this fallow field. Windows Package Manager is a bold attempt to rectify this situation.

Teaser

Winget, get it?

Microsoft never really offered the standard desktop software from its Store - but there have been various third-party solutions that tried, over the years, to offer a Linux-like package management functionality in the Windows desktop. Chocolatey is a good example - I tested this a good five years back. Now, wouldn't it be cool if there was an official tool, published by Microsoft, that could give you a whole bundle of DESKTOP applications you need, and perhaps even a way to automate installations and setups? Well, now there is.

Having read about the Windows Package Manager and its command-line interface - winget - I decided to install it, and give it a try. After all, if this works well, then it opens a whole world of possibilities, including easy post-install customization, ability to keep software up to date - something Windows users don't often do - and for nerds out there, something that can be easily scripted, so if you're rebuilding a system, the setup can be fully hands off and fast.

Setup

I downloaded the Desktop app installer package and ran it. Not very intuitive, I must say. A proper installer wizard would work better, but for an early preview, it's all right. Once winget is installed, open a command-line prompt or a powershell window, and start cruisin'.

Install winget

Weird notice on winget installation

The commands are fairly intuitive - and similar to what techies will have encountered in Linux. You run winget search "package name" to find an application. You run winget install "package name" to install it. Sounds rather simple.

Winget

Search & Install

So I did a few basic searches. In some cases, there may be more than one available entry - or version. And here I hit my first snag. What happens when there are multiple apps available:

Multiple apps

You will see a message that reads:

Multiple apps found matching input criteria. Please refine the input.

Now, this can be solved by using the -e (exact) flag with the install option - or you can specify the version you like, but this isn't documented in the most obvious way. I presume the functionality will change over time. For instance, for GIMP:

winget install -e GIMP.GIMP

GIMP installed, CLI zoomed

GIMP install

No wizard was displayed, and there were no customization options. Again, this is something that may need attention, because sometimes users may choose non-default settings. What I liked is that the installed comes from the official site, and the hash of the downloaded file is verified. Now, this doesn't mean everything will be as pure as coconut milk, but it's a good start in providing a level of trust and integrity that users must expect from a package manager (or a store).

Smooth sailing?

I tried a few more apps - and encountered some small problems. For example, Steam. You only get the stub, which then, on first run, grabs the 200MB worth of actual Steam data. This means that some apps will never be fully auto-configured, and there will be some element of post-install tweaking perhaps.

Steam, search

Steam installation

I then tried VLC, and left the computer running. When I came back, the installation had failed. I realized that this was actually because I've not responded to the UAC installation prompt, the popup that asks you if you want to install XYZ. Now, I was running as a standard user from the command line, so perhaps this is why I was seeing the prompts, and that's fine. But this is something to take into account, especially if you want to have an unattended setup - including non-default options. You also don't get to see any EULA, so this is another implicit element in this equation.

...
Successfully verified installer hash
Installing ...
Installer failed with exit code: 1223

But soon enough, I had plenty o' tools (not 007 style):

Various apps installed

Conclusion

My brief test with winget was quite satisfactory. The tool is fairly straightforward. The performance was reasonable - network is network, it depends on your bandwidth, but then, the actual installation can take some time, and because there are no clues as to what's happening, the actual process may feel longer than it really is. That said, apart from the forgotten UAC prompt and some ambiguity around specific application versions, winget behaved. There were no odd bugs or errors or anything of that kind.

I think this will be a nice thing in the end. Not sure how it's going to be implemented, but finally, with the full Win32 world of software covered, winget stands to win where Microsoft Store didn't. This could be the thing that gives the Windows users a real incentive to actually use a package manager - this one - maybe even create an account (there could be backup, restore and whatnot), the likes of which they would have with any store front, be it a mobile operating system or perhaps a gaming platform. All in all, I find winget to be a jolly nugget. There's more to be done before this can be unleashed unto the masses, but I think this could be it. The package manager that desktop users will want. To be continued.

Cheers.

You may also like: