Open Rec #1: When Microsoft goes open-source - Hi, Winget!

This article applies to:
Platform | Windows | Mac | Linux | Android | iOS |
---|---|---|---|---|---|
✅ | ✅ | ✅ | ❌ | ❌ |
Package manager?
If you install softwares frequently on a desktop, but don't know what a package manager is, you will want to know.
Without a package manager, whenever you install new software, you will likely go online, hassle around to find the right installation package, download it, wait until downloading finishes, click on the installer, and do a bunch of repetitive, meaningless button-clicking. Occasionally, you will have downloaded the wrong package, so you have to do it again, or worse, you will have installed some potentially unwanted software, spend time worrying and more time scraping it off your system.
Also, updating can be a pain in the arse for some simpler software with no auto-update. The only way to go is to manually reinstall the latest version - or use a package manager
That's unnecessary complexity. Why don't you use a package manager? Package managers are universal command-line software installers that can automate the installation, update, removal, and even configuration of most free software.
A side benefit of package managers is consistency across platforms and system versions. With package managers, you can easily install software on someone else's computer, even if their GUI is completely different from yours.
If you feel like managing packages, read on for OS-specific instructions.
Installation
Windows: Winget/Chocolatey
On Windows 11, the Winget package manager, the official, open source microsoft solution is installed by default.
On Windows 10, build 1809 or higher, you can install Winget manually.
On all Windows versions, you can install Chocolatey, a popular third-party package manager on all Windows versions
To install Chocolatey on an individual Windows computer (as opposed to a server), execute the following command in Powershell with administrative privileges:
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
'DownloadString('https://community.chocolatey.org/install.ps1'))' download the Chocolatey installation script from the official repository.
'iex' executes the script
'Set-ExecutionPolicy Bypass -Scope Process -Force' bypasses security restrictions for this installation process, which will otherwise interfere* with the installation.
*: Malicious PowerShell scripts can severely damage your computer when run with administrative privileges. Therefore, by default, Windows does not allow the execution of any PowerShellChocolatey script. To run the Chocolatey installation script, it is necessary to bypass the restriction specifically for this process.
Once installed, you must grant Chocolatey the necessary execution permission*:
Set-ExecutionPolicy AllSigned -Scope CurrentUser -Force
*: Chocolatey execute local PowerShell scripts to install, update, and remove software packages. It is as such necessary to modify the Windows execution policy to allow Powershell scripts.
The 'AllSigned' option allows the execution of all signed PowerShell scripts without warning. This is the most secure option and is compatible with Chocolatey. With 'AllSigned' Windows will warn you but not prevent the execution of your own powershell scripts, so it is recommended for everyone including power users.
Linux/MacOS: Homebrew
Most Linux distributions come with a default system package manager pre-installed. I recommend Homebrew for consistency across distributions.
On MacOS, there is no built-in package manager. Homebrew is your go-to.

Basic usage
Once you have installed Chocolatey, Winget, or Homebrew you can start finding, installing, updating, and removing software with them.
Terminology: In package managers, software is called 'packages'.
Search for a package
Winget:
winget search <package-name>
Chocolatey:
choco search <package-name>
Homebrew:
brew search <package-name>
Example:
winget search ShareX
->
Name ID Version Source
-------------------------------------
ShareX 9NBLGGH4Z1SP Unknown msstore
ShareX ShareX.ShareX 17.0.0 winget
See package description
When there are multiple related packages, most of them are likely forks. The package descriptions help you decide which one to install.
Winget:
winget show <package-id>
Chocolatey:
choco info <package-id>
Homebrew:
brew info <package-id>
Example:
winget show ShareX.ShareX
->
Trouvé ShareX [ShareX.ShareX]
Version : 17.0.0
Publisher : ShareX Team
ID de l’Editeur https://getsharex.com/
URL de support de l’éditeur : https://github.com/ShareX/ShareX/issues
Moniker : sharex
Description : ShareX is a free and open source program that lets you capture or record any area of your screen and share it with a single press of a key. It also allows uploading images, text or other types of files to many supported destinations you can choose from.
Page d’accueil : https://getsharex.com/
Licence : GPL-3.0
URL de la licence : https://github.com/ShareX/ShareX/blob/HEAD/LICENSE.txt
URL de confidentialité : https://getsharex.com/privacy-policy
Copyright : Copyright (c) 2007-2024 ShareX Team
Notes de publication :
- Scrolling capture improvements:
- Automatically ignores 50px from the bottom during scrolling captures, useful for cases like horizontal scrollbars at the bottom.
- Added an "Auto ignore bottom edge" option, which compares two images to identify static parts at the bottom, in addition to the default 50px.
- Added a "Copy" button to the scrolling capture window.
- Added notification sound to certain actions:
- Screen recording stop/pause/abort actions.
- Scrolling capture action.
- "Pin to screen" tool.
- "Screen color picker" tool.
- "Borderless window" tool.
- Browser extension action.
- Silent OCR action.
- "Disable/Enable hotkeys" action.
- Added "Play sound after action is completed" option.
- Added "Use custom action completed sound" option.
- Removed toast notification from silent OCR action.
- Removed "Disable notifications" option.
- Added Arabic language support.
- When "DisableUpload" registry is set, hide upload related items in the main window.
- Save tasks to history regardless of failed or stopped upload.
- Allow restoring borderless window in "Borderless window" tool.
- Added "Make active window borderless" hotkey.
- Added "Make active window top most" hotkey.
- Added "Pin to screen (Close all)" hotkey.
- Removed YouTube icon because Google does not allow us to use a 16x16 size logo.
- Removed Google Photos image uploader. (Reason: https://developers.googleblog.com/en/google-photos-picker-api-launch-and-library-api-updates/)
- Removed adf.ly URL shortener.
- Removed backward compatibility for .sxcu files generated before ShareX 12.4.0.
URL des notes de publication : https://getsharex.com/changelog
Mots-clés :
annotate
annotation
capture
color-picker
gif
ocr
record
recorder
region-capture
screen-capture
screen-recorder
screenshot
share
upload
Programme d'installation :
Type du programme d’installation : inno
URL du programme d’installation : https://github.com/ShareX/ShareX/releases/download/v17.0.0/ShareX-17.0.0-setup.exe
SHA256 du programme d’installation : 8b7ba685e7cb588356611f24fd06c0884678e53b49e6618e5d65412127c96e48
Date de version : 2025-01-08
Distribution hors ligne prise en charge : true
My computer is in French, run the command yourself to see results in your language
Publisher : ShareX Team
My computer is in French, run the command yourself to see results in your language
ShareX.ShareX is the official ShareX, as it is published by the ShareX Team.
(Un)install a package
Winget:
winget install <package-id>
Chocolatey:
choco install <package-id>
Homebrew:
brew install <package-id>
Example:
winget install ShareX.ShareX
->
ShareX installed.
To uninstall, write uninstall
wherever you have written 'install'
Update package(s)
Note: Package managers can only update packages installed via them.
Winget:
Updating all packages
winget upgrade -all
Updating a particular package
winget upgrade <package-id>
Chocolatey:
Updating all packages
choco upgrade <package-id>
Updating a particular package
choco upgrade <package-id>
Homebrew:
Updating all packages
brew update
Updating a particular package
brew upgrade <package-id>
Example:
winget upgrade ShareX.ShareX
->
ShareXwherever upgraded.
Launch packages automatically on startup:
Launching package(s) automatically on system startup
All Windows package managers:
See this guide:

Homebrew on MacOS (packages installed via Homebrew only):
All packages started with services
automatically launch on system startup by default
brew services start <package_name>
Homebrew on Linux*(packages installed via Homebrew only):
*: These steps apply to:
- Ubuntu (starting from version 15.04)
- Debian (starting from version 8 "Jessie")
- Fedora (starting from version 15)
- Arch Linux
- Red Hat Enterprise Linux (RHEL) (starting from version 7)
- CentOS (starting from version 7)
- openSUSE (starting from version 12.2)
- Manjaro
Homebrew Linux does not come with the services
module. You must install homebrew/services
tap manually:
brew tap homebrew/services
Then
brew services start <package_name>
And
sudo systemctl enable homebrew.mxcl.<package_name>
Homebrew services are prefixed with homebrew.mxcl.
followed by the package name. systemctl
enable the automatic launch via the system service manager systemd.
Q&A
Q: Why are package managers mostly for free software?
A: Because there is no payment or advertising through shells.
Q: Is there any reason I shouldn't use a package manager?
A: Basic command-line literacy is strongly recommended. You should not run installation scripts unless you trust the source or know what is written in there.
On the flip side, installing software via GUI is also dangerous unless you know what you are doing.
Q: Which package manager is the best one?
A: If you are on Win 11, Winget is good because it does not require admin privileges. Otherwise, Chocolatey is a solid option. On Mac and Linux, I recommend Homebrew for consistency across distributions, but on most Linux distributions, the built-in package manager is also good.
Member discussion