Intro

Lots of people are fimilar with package managers when it comes to linux distrubitions and almost all of those people would consider linux’s method for updates to be far more effective than Window’s Updates. In the last few years some pretty great package managers have been created for windows that mimic the way Linux does things. First thing to note is that all of these don’t run Windows OS (Operating System) Updates. In fact these work only as a manager for Third Party Software.


Benefits of Package Manager

A package manager is a software tool that helps you install, update, and manage the various libraries and dependencies that your applications need to function properly. There are several benefits to using a package manager, including the following:

  • Consistency: Package managers ensure that your applications have the same versions of libraries and dependencies, which helps to prevent compatibility issues and other problems.
  • Simplicity: Package managers make it easy to install, update, and manage the various libraries and dependencies that your applications need, which can save you a lot of time and effort.
  • Reliability: Package managers are designed to be robust and reliable, so they can help to ensure that your applications always have the correct libraries and dependencies installed.
  • Security: Package managers can help to keep your applications secure by automatically installing security updates and patches for the libraries and dependencies that they use.
  • Reproducibility: Package managers make it easy to reproduce your application’s environment on different machines, which can be useful for testing and deployment. Overall, using a package manager can help to improve the reliability, consistency, and security of your applications, and can save you a lot of time and effort when managing their dependencies.

Below are the Package Managers we will be considering today:

  • Chocolatey
  • Scoop
  • Winget

Note: There should be others but none as mainstream as all three above


1. Chocolatey

Probably the most popular of the three above. Chocolatey is a package manager for Windows that allows you to easily install, update, and manage applications and other software on your system.

To use Chocolatey, you will first need to install it on your system by running the following command in a command prompt or PowerShell window:

@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"

Once Chocolatey is installed, you can use it to install and manage packages on your system. For example, to install the Visual Studio Code text editor, you would run the following command:

choco install vscode

To update an installed package, you can use the upgrade command, followed by the package name. For example, to update Visual Studio Code, you would run the following command:

choco upgrade vscode

Chocolatey also allows you to search for available packages, uninstall packages, and perform other package management tasks. For more information, you can view the Chocolatey usage guide by running the following command:

choco -h

Chocolatey is a popular and powerful package manager for Windows, and can be a useful tool for managing the applications and software on your system.


2. Scoop

Scoop is a command-line package manager for Windows that allows you to easily install, update, and manage applications and other software on your system. To use Scoop, you will first need to install it on your system by running the following command in a command prompt or PowerShell window:

iwr -useb get.scoop.sh | iex

Once Scoop is installed, you can use it to install and manage packages on your system. For example, to install the Visual Studio Code text editor, you would run the following command:

scoop install vscode

To update an installed package, you can use the update command, followed by the package name. For example, to update Visual Studio Code, you would run the following command:

scoop update vscode

Scoop also allows you to search for available packages, uninstall packages, and perform other package management tasks. For more information, you can view the Scoop usage guide by running the following command:

scoop -h

Scoop is a lightweight and easy-to-use package manager for Windows, and can be a useful tool for managing the applications and software on your system.


3. Winget

Winget is a package manager for Windows 10/11 that allows users to install applications from the command line. To install an application using winget, you will need to open a command prompt or PowerShell window and type the following command:

winget install [package-name]

Replace [package-name] with the name of the application you want to install. For example, if you want to install the Visual Studio Code text editor, you would type the following command:

winget install Visual Studio Code

Winget will then download and install the application for you. You can also use winget to search for available packages, uninstall applications, and perform other package management tasks. For more information, you can type the following command to view the winget usage guide:

winget -h

Keep in mind that winget is currently still in its first release, so it may not be suitable for use in production environments. You should also be aware that the available packages may be limited and may not include the latest versions of applications. However, since this is the main channel governed by Microsoft it has offical support and has been my go-to for grabbing software.


Overall Usefulness

Having tried all three as a Developer, Systems Administrator, And Information Technology Specialist I have gotten spoiled by these tools. There is a lot of use cases, but my main work environment is stood up largely by using Winget and with a backup of using scoop.

There is a reason of course for this. Winget has the added benefit of being in the main support channel and Scoop has the added benefit of installing all its programs in isolation without messing with much of anything on windows. Scoop is also adds things directly to the PATH env variable by having all the executables be loaded into its shim folder.

Chocolatey felt a bit more clunky to me and i’ve had cases where I would get weird version issues or packages would be held back for review. However, choco has a huge advantage that should not be overlooked. It has Ansible support. That by itself makes a production tool. Being able to automate package installations and updates on a fleet of machines make things not only easy but effective. I’ve seen a ansible module for scoop recently though and that may very well kill any use I have for Chocolatey.

Whatever your use case is. You should try out one of the packages managers above and say goodbye to the days of Googling for your installers.