Microsoft выпустил пакетный менеджер Windows Package Manager 1.0, похожий на apt и dnf

Компания Microsoft опубликовала выпуск пакетного менеджера Windows Package Manager 1.0 (winget), предоставляющего средства для установки приложений с использованием командной строки. Код написан на языке С++ и распространяется под лицензией MIT. Пакеты устанавливаются из репозитория, поддерживаемого при участии сообщества. В отличие от установки программ из каталога Microsoft Store, winget позволяет устанавливать приложения без лишнего маркетинга и рекламы.

Windows Package Manager 1.0 позиционируется как первый полнофункциональный релиз, который поддерживает интеграцию с каталогом Microsoft Store, автодополнение ввода, различные категории выпусков (релизы, бета-версии), установку системных компонентов и приложений для панели управления, delta-обновления, наборы пакетов, интерфейс для генерации манифестов, работу с зависимостями, установочные файлы в формате zip (помимо msi) и т.п. Синтаксис команд и логика работы с winget близки к пакетным менеджерам apt и dnf.

В первом выпуске предоставляются следующие команды:

  • install – установка пакетов;
  • show – вывод информации о пакете;
  • source – управления источниками загрузки пакетов;
  • search – поиск пакетов;
  • list – показ списка установленных пакетов;
  • upgrade – обновление заданных пакетов;
  • uninstall – удаление установленных пакетов;
  • hash – работа с проверочными хэшами;
  • validate – проверка целостности манифеста;
  • settings – изменение настроек;
  • features – показ состояния экспериментальных возможностей;
  • export – экспорт списка установленных пакетов;
  • import – импорт списка установленных пакетов.

Параметры пакета определяются через файлы с манифестом в формате YAML. Для упрощения создания файлов с манифестом преложен инструментарий winget-create. Сами исполняемые файлы хранятся в Microsoft Store или непосредственно на серверах основных проектов, репозиторий лишь выступает индексом, а манифест ссылается на внешний msi-файл (например, размещённый на Microsoft Store, GitHub или сайте проекта). Для контроля целостности и защиты от подмены используется хэш SHA256.

В настоящее время в репозиторий предложено более 1400 пактов, в том числе представлены такие проекты, как 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 требуется наличие сборки Windows Insider со включённым режимом разработчика. В ближайшее время планируется обеспечить поставку winget по умолчанию для пользователей Windows 10 1809 и более новых выпусков. По умолчанию при установке готовых сборок в пакетном менеджере включена отправка телеметрии, собирающей данные о взаимодействии пользователя с пакетным менеджером и возникающих ошибках. Для отключения телеметрии можно выбрать значение “Basic” в “Settings > Privacy > Diagnostics & feedback” или собрать winget из исходных текстов.

Release. Ссылка here.