Windows Package Manager

Summary

The Windows Package Manager (also known as winget) is a free and open-source package manager designed by Microsoft for Windows 10 and Windows 11. It consists of a command-line utility and a set of services for installing applications.[3][4] Independent software vendors can use it as a distribution channel for their software packages.

Windows Package Manager
Developer(s)Microsoft
Initial releaseMay 13, 2020; 3 years ago (2020-05-13)
Stable release
1.6.2771[1] Edit this on Wikidata (5 October 2023; 5 months ago (5 October 2023))
Preview release1.7.3172 (November 14, 2023; 4 months ago (2023-11-14)[2]) [±]
Repositorygithub.com/microsoft/winget-cli
Written inC++
Operating systemWindows 10 or later
Size~23 MB
Available inChinese, English, French, German, Japanese, and others
TypePackage manager
LicenseMIT License
Websitelearn.microsoft.com/en-us/windows/package-manager/

History edit

Windows Package Manager was first announced at the Microsoft Build developer conference in May 2020.[5][4]

Before deciding to develop Windows Package Manager, the team behind it explored Chocolatey, Scoop, Ninite, AppGet, Npackd and the PowerShell-based OneGet.[4] After the announcement of winget, the developer of AppGet, Keivan Beigi, claimed that Microsoft interviewed him in December 2019 under the pretense of employment and acquiring AppGet.[6] After talking with Beigi, Microsoft allegedly ceased communication with him until confirming one day before the launch of winget that they would not be hiring him. Beigi was dismayed at Microsoft's lack of attribution of AppGet. The release of winget led Beigi to announce that AppGet would be discontinued in August 2020.[6][7][8] Microsoft responded with a blog post crediting a number of winget's features to AppGet.[9][10][11]

Microsoft released version 1.0 of Windows Package Manager on May 27, 2021. The Microsoft Community Repository included over 1,400 packages at that date.[12]

Overview edit

The winget tool supports installers based on EXE, MSIX, and MSI.[13] The public Windows Package Manager Community repository hosts manifest files for supported applications in YAML format.[14] In September 2020, Microsoft added the ability to install applications from the Microsoft Store and a command auto-completion feature.[15]

To reduce the likelihood of non-Microsoft-approved software, including malicious software, making its way into the repository and onto the target machine, Windows Package Manager uses Microsoft SmartScreen, static analysis, SHA256 hash validation and other processes.[16][17]

The winget client source code and the community manifest repository are licensed under MIT License and hosted on GitHub.[18][14]

Commands[13] edit

Name Description
configure Configures the system into a desired state
export Exports a list of the installed applications
features Show status of experimental features
hash Hash installer files
import Install all the applications in a file
install Install the given application
list Display installed applications
pin Manage package upgrade pins
show Show information about the given application
search Search and show basic information of applications
settings Open winget configuration settings
source Manage application sources
upgrade Upgrades the given application
uninstall Uninstall the given application
validate Validate a manifest file

Example edit

The following example searches for and installs variable $PKG_ID.

winget install --id=$PKG_ID -e

Package ID examples edit

See also edit

References edit

  1. ^ "Windows Package Manager 1.6.2771".
  2. ^ "preview · microsoft/winget-cli · GitHub". GitHub. Retrieved 2023-11-20.
  3. ^ Tom Warren (20 May 2020). "Microsoft's new Windows Package Manager is already better than the Windows Store". The Verge.
  4. ^ a b c Windows Package Manager Preview | Windows Command Line
  5. ^ Microsoft debuts Windows Package Manager for your dev environment | VentureBeat
  6. ^ a b Warren, Tom (28 May 2020). "Microsoft copied its new Windows Package Manager from rival AppGet, claims developer". The Verge. Vox Media. Retrieved June 1, 2020.
  7. ^ Anderson, Tim (May 28, 2020). "Embrace and kill? AppGet dev claims Microsoft reeled him in with talk of help and a job – then released remarkably similar package manager". The Register. Retrieved 2020-06-01.
  8. ^ Stewart, Ashley (May 28, 2020). "A developer says Microsoft led him on about a job and buying his tool before going silent and releasing its own very similar service. Now he wants an explanation and credit for his work". Business Insider. Retrieved June 1, 2020.
  9. ^ Tung, Liam (June 1, 2020). "Windows 10: Microsoft now credits maker of package manager it 'copied' – but offers no apology". ZDNet. Retrieved 2020-06-02.
  10. ^ Microsoft gives AppGet creator credit for Windows Package Manager - Neowin
  11. ^ Warren, Tom (April 20, 2022). "Microsoft finally gives AppGet developer the credit he deserves". The Verge. Retrieved 2020-06-02.
  12. ^ Anderson, Tim (May 27, 2021). "Microsoft releases command-line package manager for Windows (there are snags)". The Register. Retrieved 2021-05-28.
  13. ^ a b "Use the winget tool to install and manage applications". Microsoft.
  14. ^ a b GitHub - microsoft/winget-pkgs: The Microsoft community Windows Package Manager manifest repository
  15. ^ Abrams, Lawrence (September 23, 2020). "Windows 10 Package Manager can now install Microsoft Store apps". Bleeping Computer. Retrieved 2020-10-10.
  16. ^ Tung, Liam (May 21, 2020). "Microsoft's Windows Package Manager: This command-line tool can install all your apps". ZDNet. Retrieved 2020-06-02.
  17. ^ How to Use Windows Package Manager - Petri
  18. ^ "GitHub - microsoft/winget-cli: Windows Package Manager CLI (a.k.a. winget)". May 20, 2020 – via GitHub.
  19. ^ "Winget PKG of Visual Studio Code" https://winget.run/pkg/Microsoft/VisualStudioCode
  20. ^ "Winget PKG of Google Chrome" https://winget.run/pkg/Google/Chrome

External links edit

  • Windows Package Manager | Microsoft Docs
  • winget-cli on GitHub
  • winget-pkgs on GitHub
  • WingetUI - Community-made GUI for Winget