Nextpertise a journal of interesting technical ideas . . .

Winget

by Brent Stewart on Tuesday, Dec 28, 2021

I’m experimenting with KVM and decided to build a new Windows VM. I’m currently using Pop!_OS 21.10 which uses the 5.15 kernel. Turns out that breaks Windows on VMWare workstation and it looks like the cause is VMWare not keeping up with the latest kernels. There are some patches available, but it’s the week between Christmas and New Years and seemed like a good chance to review the FOSS alternative.

Part of my troubleshooting process on Linux was to make sure that I haven’t made a change that’s impacting VMWare. Pop! has a really cool feature that will roll-back to a clean install, but leave your personal files. Reinstalling missing applications is pretty easy in linux. Installing hugo again is as easy as:

sudo apt install hugo

Chocolatey

Chocolatey is free open-souce software that has been around for a while and I’ve used it before. Chocolatey works like apt, using the choco command. You can search for a package, install it, or uninstall it. Choco upgrade will upgrade all the Chocolatey-managed applications on your system. This last piece is especially useful, since Windows Update focuses just on Microsoft properties.

Winget

Microsoft has developed a similar tool called winget. I have a bias toward open source, but my job is in a corporate Windows environment. I’m not sure that I could get Chocolatey in the door, but Winget might be something that could be used. I decided to give it a whirl in this VM and try to get some experience.

Installation is a little non-obvious. If you go to the Github page, it recommends installation through the Windows Store. However, I searched the store and didn’t find anything. Instead, I downloaded the msixbundle file from the latest release and ran it.

Winget will be intuitive for apt users. Winget search libre showed me available applications with libre in the title including LibreOffice and Librewolf. Winget install librewolf installed the firefox-based web browser.

Winget Example

One of the best features of apt is the easy way that components are upgraded. Running winget upgrade will list installed applications that have an upgrade avaialable. It even caught an application I did not install with winget! Winget upgrade –all will install all available upgrades. You can also specify specific applications that you want to upgrade.

Not baked yet

I identified three issues in my early experimentation.

Apt will identify dependencies and include them during the application installation. Librewolf completed installation without an error, but wouldn’t run without the Visual C redistributable module. Winget search didn’t turn up a way to install the dependency, so I installed it directly from the Microsoft site.

I mentioned earlier that winget identified upgrades even for applications it didn’t install. That true and would be an enormous advantage of the tool. But . . . it didn’t work. The upgrade failed and pointed me to a log. The log showed that the service needed to be stopped before upgrading. Once I stopped the service and re-ran the winget upgrade –all command, the process completed successfully.

Winget doesn’t get a “half-point” with the upgrade problem. Instead of a simple update, this requires that I identify and shutdown services before running the upgrade, then manually restart them. It’s doable, but far from the easy process that is expected on Linux.

The third issue I found was that the Windows Decrapifier wasn’t included in winget. Is this because the pool of installable applications is comparitvely shallow? This seems reasonable since it’s a relatively new project. You can see the complete list of currently supported applications (here)[https://github.com/microsoft/winget-pkgs/tree/master/manifests/d]. Is the lack of the decrapifier an editorial decision? Possibly, but if so it portends an anemic future for the tool.

##So? Winget shows promise and it’s worth keeping an eye on. But I won’t be recommending it to the end-user support group today. Give me dependency recognition, easy upgrading, and broader support and this will be a standard part of the tool bag.



References:
  https://github.com/microsoft/winget-cli/releases
  
https://chocolatey.org
  
https://github.com/microsoft/winget-pkgs/tree/master/manifests/

Recent articles related to these tags:
Windows shell
Share this article:   
Tweet