Компания Microsoft представила пакетный менеджер WinGet 1.4 (Windows Package Manager), предназначенный для установки приложений в Windows из репозитория, поддерживаемого при участии сообщества, и выступающего альтернативой каталога Microsoft Store, с которой можно работать из командной строки. Код написан на языке С++ и распространяется под лицензией MIT.
Для управления пакетами предоставляются команды, близкие к таким пакетным менеджерам как apt и dnf (install, search, list, upgrade и т.п.). Параметры пакета определяются через файлы с манифестом в формате YAML. Репозиторий WinGet лишь выступает индексом, а манифест ссылается на внешний zip- или msi-файл, например, размещённый на Microsoft Store, GitHub или на основном сайте проекта). Для упрощения создания файлов с манифестом преложен инструментарий winget-create.
В настоящее время в репозитории предложено около двух тысяч пакетов, среди прочего представлены такие проекты, как 7Zip, OpenJDK, iTunes, Chrome, Blender, DockerDesktop, Dropbox, Evernote, FreeCAD, GIMP, Git, Maxima, Inkscape, Nmap, Firefox, Thunderbird, Skype, Edge, VisualStudio, KiCad, LibreOffice, Minecraft, Opera, Putty, TelegramDesktop, Steam, WhatsApp, Wireguard, Wireshark и различные приложения Microsoft. Поддерживается создание приватных репозиториев, взаимодействие с которыми осуществляется через REST API.
По умолчанию при установке готовых сборок WinGet в пакетном менеджере включена отправка телеметрии, собирающей данные о взаимодействии пользователя с пакетным менеджером и возникающих ошибках. Для отключения телеметрии можно выбрать значение “Basic” в “Settings > Privacy > Diagnostics & feedback” или собрать WinGet из исходных текстов.
В новом выпуске:
- Предоставлена возможность поставки установочных файлов и инсталлятора в архивах zip, помимо ранее поддерживаемых форматов MSIX, MSI и EXE.
- Расширены возможности команды “winget show”, в результатах которой теперь выводятся сведения о тегах и ссылке на страницу покупки приложения.
- Добавлена поддержка альтернативных наименований команд. Например, для команды “search” реализован псевдоним “find”, для команды “install” – псевдоним “add”, для upgrade – update, для uninstall – rm, для list – ls, а для settings – config.
- Улучшен процесс установки и обновления приложений. Например, при попытке применения команды install для уже установленного пакета, WinGet определит наличие пакета и автоматически выполнит команду upgrade для обновления вместо установки (для отмены подобного поведения добавлена опция “–no-upgrade”).
- Добавлена опция “–wait” при указании которой после выполнения операции выводится запрос нажатия клавиши для продолжения, который может быть полезен для того чтобы рассмотреть вывод при вызове winget из скриптов.