Установка WinGet Windows Package Manager (Менеджер пакетов)

Обновлено 21.08.2023

Windows-Package-Manager-Winget

Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов в рунете Pyatilistnik.org. В прошлый раз мы с вами успешно разобрали утилиту по диагностике Active Directory под названием repadmin. Идем далее и сегодня я вам покажу, как производится установка пакетного менеджера Microsoft winget (Windows Package Manager). Рассмотрим список команд Winget и как их можно использовать в повседневной жизни. Все проделывать буду на Windows 10.

Что такое менеджер или диспетчер пакетов winget (Windows Package Manager) ?

Разработчики Windows уже давно с завистью смотрят на избыток менеджеров пакетов в Linux. Наличие простого инструмента командной строки, такого как apt или rpm, который установит приложение и все его необходимые компоненты, упрощает установку цепочки инструментов. Все, что вам нужно, это сценарий, который объединяет в цепочку список инструментов.

Такого никогда не было в средах Microsoft, по крайней мере, до появления шаблонов Azure CLI и ARM. Но они предназначены только для облака или для управляемых систем Azure Arc. Они работают на более высоком уровне, чем инструменты, устанавливающие редактор, служебную программу или компилятор, обеспечивая полную инфраструктуру. У пользователей Windows был выбор стороннего Chocolatey, основанного на PowerShell и работающего с собственными установщиками Windows, но это не шло из коробки.

В течение долгого времени люди просили встроенный диспетчер пакетов в Windows и Microsoft Build Microsoft создала версию диспетчера пакетов Windows под названием WinGet. Менеджер пакетов может помочь вам сэкономить время и быстро установить программное обеспечение и инструменты на ваш компьютер. Разработчики и ИТ-специалисты давно хотели иметь собственный менеджер пакетов в Windows, и с WinGet вы это получите.

WinGet.exe - Это утилита командной строки, позволяющая вам скачивать и устанавливать огромное количество программ, со всеми зависимостями прямо у командной строки, не тратя время на поиски официальных сайтов и тому подобное. С помощью Windows Package Manager вы просто вводите простую команду и дело пошло, все можно заскриптовать и автоматизировать, главное наличие интернета.

Winget, это также первая итерация встроенного диспетчера пакетов для Windows, тесно связанная с различными альтернативами и с открытым исходным кодом, особенно с AppGet. Он публикуется на GitHub. Он имеет архитектуру, аналогичную большинству менеджеров пакетов, с использованием манифестов для описания приложений и их требований, с центральным управляемым репозиторием для манифестов, каждый из которых ссылается на сайты загрузки для установщиков приложений.

На текущий момент уже есть свыше 1350 пакетов

Способы установить WinGet Windows Package Manager в Windows 10

Для того, что получить и установить Windows Package Manager 1.0 и выше вам необходимо выполнить одно из требований:

  • Либо быть зарегистрированным и иметь сборку Windows Insider или иметь Windows 10 1809 и выше
  • Диспетчер пакетов Windows распространяется вместе с установщиком приложений из Microsoft Store
  • Установить Windows Package Manager можно через Windows Terminal
  • Установить WinGet можно через репозиторий на GitHub

Версия 1.0 диспетчера пакетов Windows скоро будет поставляться в виде автоматического обновления через Microsoft Store для всех устройств под управлением Windows 10 версии 1809 и более поздних версий. Так же установить и использовать Windows Package Manager 1.0 можно через групповые политики

В Windows 11 менеджер пакетов WinGet идет встроенный по умолчанию в систему, его установка уже не потребуется

Установка менеджера пакета WinGet через Microsoft Store

Данный метод очень простой, тут будет использоваться установщик приложения. Microsoft App Installer для Windows 10 существенно упрощает загрузку неопубликованных приложений для Windows 10. Перейдите на страницу с Microsoft App Installer.

https://www.microsoft.com/ru-ru/p/app-installer/9nblggh4nns1?activetab=pivot:overviewtab

В правой части страницы нажмите "Получить"

Установка менеджера пакета WinGet через Microsoft Store

Далее подтвердите, что подтверждаете открытие данного приложения через Microsoft Store

Получение WinGet Windows Package Manager через Windows Store

Если у вас выскакивает ошибка при скачивании Microsoft App Installer, то нужно посмотреть причину в подробных сведениях. Если проблем нет, то Microsoft App Installer установится без проблем.

Ошибка установки Microsoft App Installer

В итоге Microsoft App Installer жалуется, что центр обновления Windows отключен.

Не скачивается Microsoft App Installer из-за отключенной службы обновления

Установка менеджера пакета WinGet через GitHub и PowerShell

Как я и писал выше весь открытый код Winget выложен на портале GitHub. Суть установки WinGet заключается в том, что необходимо скачать и установить appxbundle пакет. Для этого перейдите по ссылке, где есть список всех релизов и версий:

https://github.com/microsoft/winget-cli/releases

На момент написания статьи актуальной версией является Windows Package Manager v1.0.11451. Снизу вы увидите список доступных файлов, Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.appxbundle это и есть сам пакет с утилитой WinGet.

Список релизов WinGet Windows Package Manager на GitHub

Далее вы просто щелкаете по данному пакету и устанавливаете его. Вас уведомят, хотите ли вы обновить установщик приложений, ответьте да.

Установка менеджера пакета WinGet через скачанный пакет Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.appxbundle

Начнется процесс обновления. Дожидаемся окончания и можем использовать WinGet.

Процесс обновления менеджера пакетов

Давайте я покажу, как с помощью PowerShell можно скачать данный пакет и установить его. Откройте PowerShell от имени администратора и введите:

Invoke-WebRequest -Uri "https://github.com/microsoft/winget-cli/releases/download/v1.0.11451/Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.appxbundle" -OutFile "C:\Temp\WinGet.appxbundle"
Add-AppxPackage "C:\Temp\WinGet.appxbundle"

Не забываем, что нужно поставить в данную команду нужную вам версию, в моем примере это v1.0.11451

Первая команда начинает скачивание пакета Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.appxbundle, убедитесь, что у вас создана папка для загрузки.

Скачивание пакета Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.appxbundle через PowerShell

Далее команда распаковывает пакет и добавляет утилиту WinGet.

Процесс установки пакета Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.appxbundle через PowerShell

На этом установка менеджера пакетов WinGet Windows Package Manager завершена.

Основные ключи winget

Перед тем, как мы разберем установку программ через менеджер пакетов Windows я вам покажу основные ключи, которые будут фигурировать в командах. Запустите командную строку или powerShell, где введите:

winget

  • install - Установка указанного пакета
  • show - Показывает сведения о пакете
  • source - Управление источниками пакетов
  • search - Поиск и отображение базовых сведений о пакетах
  • list - Отображать установленные пакеты
  • upgrade - Обновление указанного пакета
  • uninstall - Удаление указанного пакета
  • hash - Вспомогательное приложение для хэширования файлов установщика
  • validate - Утверждает файл манифеста
  • settings - Открыть параметры
  • features - Показывает состояние экспериментальных компонентов
  • export - Экспортирует список установленных пакетов
  • import - Устанавливает все пакеты в файле
  • upgrade - Обновление приложений

Ключи третьего уровня

  • -v,--version - Отобразить версию инструмента
  • --info - Отображать общие сведения об инструменте
  • --silent - Тихая установка
  • -e, --exact - Ищет точное совпадение со строкой в запросе, выполняя при этом проверку на учет регистра. Поведение по умолчанию для подстроки не используется
  • -i, --interactive - Запускает установщик в интерактивном режиме. При взаимодействии по умолчанию отображается ход выполнения установщика.
  • -h, --silent - Запускает установщик в автоматическом режиме. Блокирует весь пользовательский интерфейс. При взаимодействии по умолчанию отображается ход выполнения установщика.
  • -o, --log  - Направляет данные журнала в файл журнала. Необходимо указать путь к файлу, для которого у вас есть права на запись.

дополнительно - https://docs.microsoft.com/ru-ru/windows/package-manager/winget/install

Основные ключи winget

Как установить программное обеспечение с помощью диспетчера пакетов Windows

Теперь вы можете начать использовать winget для установки огромного количества программ, сильно ускорив этот процесс, а дальше я покажу, как это еще и автоматизировать скриптами.

  • Первое, что вы должны сделать, это вывести список всех установленных. Сделать это можно через команду:

winget list

На выходе вы получите список содержащий: имя, ID и версию установленного пакета.

Вывод списка установленных пакетов через winget

Обратите внимание, что тут будут перечислены все приложения, которые вы видите и в оснастке "Программы и компоненты", для примера я вывел отдельной командой этот же список для сравнения.

Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, Size, InstallDate | Format-Table -AutoSize

Вывод списка установленных приложений через winget

  • Теперь давайте посмотрим список доступных пакетов, через команду:

winget show или winget install

Вы увидите огромный список

Winget - Как вывести список доступных для установки приложений

 

  • Чтобы произвести поиск по ключевому слову во всем списке пакетов, вам нужно воспользоваться ключом search. Я буду искать например "Google" или "Telegram Desktop". Введите:

winget search Google

В результате вы получите все пакеты с ключевым словом "Google". Мне интересен Google Chrome и его версия Canary.

произвести поиск по ключевому слову во всем списке пакетов

  • У вас может возникнуть потребность более подробно посмотреть содержимое пакета с его метаданными, кто его разработчик, версия и все в таком духе, для этого выполните:

winget show "Google Chrome"

Обратите внимание, что можно использовать как имя пакета, так и его ID. Полезной информации будет много.

Найдено Google Chrome [Google.Chrome]
Version: 68.94.77
Publisher: Google LLC
Author: Google LLC
Moniker: googlechrome
Description: A fast, secure, and free web browser built for the modern web. Chrome syncs bookmarks across all your devices, fills out forms automatically, and so much more.
Homepage: https://www.google.com/chrome
License: Proprietary freeware, based on open source components
License Url: https://www.google.com/chrome/terms/
Installer:
Type: Msi
Locale: en-US
Download Url: https://dl.google.com/edgedl/chrome/install/GoogleChromeStandaloneEnterprise64.msi
SHA256: 90a3f62e77fbaf7e11e37bd12016414a5bcf7993f6f93dd0d7d3d497071c0a53

Winget - Просмотр содержимого пакета (Версия, тип расширения, локаль, автор, разработчик)

  • Процесс установки приложения через Winget. Тут все просто, в менеджере пакетов Windows есть ключ install, структура будет такой:

winget install "Google Chrome" или winget install Google.Chrome

Начнется подключение к репозиторию Microsoft и скачивание пакета Google Chrome.

подключение к репозиторию Microsoft и скачивание пакета Google Chrome

После чего появится окно с установкой Google Chrome

С помощью Winget мне удалось исправить ошибку vcruntime140.dll, просто скачав нужный пакет

Winget - окно с установкой программы

Дожидаемся окончания установки. Проверяем, что приложение появилось в списке.

Установка приложений через Winget

  • Если хотите установить несколько приложений сразу, то вот пример команды, устанавливающей "VLC media player" и "Telegram Desktop". Команда будет выглядеть вот так:

winget install "VLC media player" --silent; winget install "Telegram Desktop" --silent

Как видите все успешно отработало и в списке приложений все появилось.

winget - установка нескольких приложений

Проверим наши приложения в меню пуск.

  • При желании вы можете экспортировать список пакетов, которые у вас установлены в JSON файл, чтобы потом его можно было импортировать. Если вам это нужно вот пример команды:

winget export -o C:\Temp\Json\apps.json

Бывает, так что некоторые пакеты не могут быть экспортируемы и будут писать "Установленный пакет недоступен из любого источника".

winget выгрузка в json

Как обновить приложения с помощью команды winget в Windows 11

В Windows 11 (и других версиях, где есть утилита) вы можете быстро обновить одно или все свои приложения одной команды с помощью инструмента командной строки Windows Package Manager (winget) без необходимости использования Microsoft Store.

Чтобы посмотреть, что вы можете обновить через Winget, вам нужно ввести команду:

winget upgrade

В результате вы получите список программного обеспечения, что подходит под наш запрос.

winget upgrade

  • ✅Для того, чтобы обновить одно приложение вы можете воспользоваться вот такой конструкцией:

winget upgrade -h --id APP-ID

В команде измените APP-ID на идентификатор приложения (ИД) для установки в Windows 11. Параметр -h автоматически запускает установщик, скрывая весь пользовательский интерфейс. Однако, если требуется повышение прав, вы все равно получите подсказку. Например я хочу обновить "PowerShell 7-64", для этого моя команда будет выглядеть вот так:

winget upgrade -h --id Microsoft.PowerShell

Обновление приложения в Windows 11 с помощью команды winget

После выполнения этих шагов приложение будет обновлено до последней версии, доступной в репозитории диспетчера пакетов Windows. Обратите внимание, что был скачал дистрибутив по прямой ссылке. Ранее было 6 доступных обновлений, теперь 5.

  • ✅Для того, чтобы обновить все приложения за один раз вы можете воспользоваться вот такой конструкцией.

winget upgrade -h --all

После выполнения этих шагов инструмент winget загрузит и установит обновления для всех приложений, установленных в Windows 11.

Важно отметить, что вы можете обновлять только те приложения, которые вы установили с помощью диспетчера пакетов Windows. Приложения, которые вы установили из разных источников, не будут обновляться в ходе этого процесса. Кроме того, если вы позже обновите приложение с помощью другой технологии обновления, вы потеряете возможность обновлять приложение через диспетчер пакетов Windows.

Полезные дополнительные ключи:

  • -v, --version - Позволяет указать точную версию для обновления. Если параметр не задан, будет обновлено приложение с наибольшим номером версии.
  • --name - Ограничивает поиск приложением с определенным именем.
  • -i, --interactive - Запускает установщик в интерактивном режиме. При взаимодействии по умолчанию отображается ход выполнения установщика.
  • --force - При обнаружении несоответствия хэша команда проигнорирует ошибку и попытается установить пакет.
  • --include-unknown - Обновляет пакеты, даже если их текущую версию невозможно определить.

WingetUI - графический интерфейс для менеджера пакетов

Для тех кто привык к графическому интерфейсу, но хочет использовать современный функционал Windows, есть бесплатная, сторонняя утилита WingetUI, она и предоставляет графический интерфейс для работы с winget. WingetUI весит 44 МБ и потребует от вас простой установки в виде стандартного мастера. Что умеет WingetUI:

  • Возможность установки пакетов из Scoop и Winget (идея в том, чтобы в будущем добавить больше менеджеров пакетов).
  • Возможность обновлять и удалять ранее установленные пакеты, а также удалять локальные приложения для ПК!
  • Возможность как импортировать, так и экспортировать пакеты по вашему выбору, чтобы вы могли легко установить их в будущем.
  • Пользователю не нужно устанавливать какие-либо менеджеры пакетов. (Хотя в приложении есть возможность установить Scoop!)
  • Включает поддержку управления бакетами Scoop.
  • Пользователь может выбрать версию любого конкретного приложения, которую он хочет установить.
  • Пользователь будет уведомлен об успешном завершении установки/обновления/удаления приложения.
  • Возможность ставить установки в очередь для предотвращения конфликтов.
  • Доступна темная тема, чтобы вы не обжигали глаза.
  • Возможность отображать информацию о пакете (например, его лицензию, хэш SHA256, домашнюю страницу и т. д.) перед установкой.
  • Доступно более 6800 пакетов!
  • Дополнительные функции появятся в будущем!

Согласитесь, что список достоинств не маленький, самый правильный метод быстро поставить WingetUI, это использовать сам же Winget.

winget install wingetui

Установка WingetUI

Или можете скачать автономный установщик по ссылке проекта:

https://github.com/marticliment/WingetUI

Скачивание автономного пакета WingetUI

После установки запустите WingetUI. Интерфейс будет очень простым и интуитивно понятным.

Интерфейс WingetUI

  1. В правой части есть поле поиска, укажите в нем нужный вам пакет, пусть в моем примере это будет пакет Process Explorer от Sysinternals.Поиск пакета в WingetUI
  2. Выберите нужный пакет. Обратите внимание на значки операций, которые доступны вам, они так же есть и в контекстном меню, через правый клик.Доступные операции с пакетом в WingetUI
  3. Для получения деталей пакета вы можете выбрать опцию "Показать информацию".Информация о пакете в WingetUI
  4. Тут вы найдете издателя, автора, домашнюю страницу, версии, можете сразу отсюда установить, при необходимости от имени администратора.

Успешная установка пакета в WingetUI

На вкладке "Обновление программ" вы получите список пакетов, которые вы можете обновить с помощью WingetUI.

Обновление программ в WingetUI

Установленные пакеты вы можете найти на соответствующей вкладке.

Установленные пакеты в WingetUI

Как видите утилита очень простая и отлично выступает в виде графической надстройки над менеджером пакетов Winget.

Как использовать winget в скриптах

Логично представить, что если это утилита командной строки или PowerShell, то можно написать скрипт, который вы сами будите запускать на чистой системе или через автозапуск Windows, вам главное чтобы без вашего участия был установлен весь набор софта. для корпоративных компьютеров, это вообще отличное решение, так как установка программ через GPO не всегда возможна, а SCCM есть не у всех.

Самое классное, что если вы еще не разбираетесь в PowerShell, то вы легко можете все равно написать скрипт. Для этого есть отличный интернет ресурс:

https://winstall.app/

winstall - это по сути графический режим для пакетного менеджера Windows Winget. Ресурс имеет огромную базу пакетов, которая присутствует в winget и позволяет вам выбрать их нужное количество, после чего сформировать простой скрипт на PowerShell. 

  1. Первым делом вам необходимо через поиск найти нужные вам пакеты. Пускай в моем примере, это будут: "VLC media player", "Telegram Desktop", "Google Chrome", "Mozilla Firefox".Сайт winstall
  2. Далее, когда вы выбрали все необходимые пакеты, вам необходимо просто нажать кнопку "Generate Script"Генерирование скрипта в winstall
  3. В результате этих простых действий вам будет подготовлено три сценария: bat скрипт для командной строки, скрипт PowerShell и файл для импорта в Winget.
    Winget скрипт
  4. Далее вам остается просто запустить нужный файл в вашей системе.

Пример скрипта установки приложений через Winget для командной строки Windows

winget install --id=Google.Chrome -e && winget install --id=Mozilla.Firefox -e && winget install --id=VideoLAN.VLC -e && winget install --id=Telegram.TelegramDesktop -e

Пример скрипта установки приложений через Winget для PowerShell

winget install --id=Google.Chrome -e ; winget install --id=Mozilla.Firefox -e ; winget install --id=VideoLAN.VLC -e ; winget install --id=Telegram.TelegramDesktop -e

Пример импорта Json

winget import --import-file "winstall-1190.json"

Запуск скрипта по установке приложений через менеджер пакетов Windows

Запускать скрипт нужно от имени администратора, если м говорим про сценарий PowerShell, то вам может потребоваться разрешить запуск неподписанных скриптов, иначе может быть ошибка, если не хотите разрешать, то можете конвертировать файл ps1 в exe, это исправит проблему или же запускать его через групповые политики, перед запуском компьютера.

Запуск скрипта по установке приложений через менеджер пакетов Windows

На этом у меня все, мы с вами разобрали пакетный менеджер Windows Winget. С вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.

Дополнительные источники

  • https://learn.microsoft.com/ru-ru/windows/package-manager/winget/upgrade
Автор - Сёмин Иван

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *