Установка и обновление программ через PowerShell
Что такое Winget и как он работает?
Winget - это консольная утилита, встроенная в Windows 10 и 11 (кроме редакций LTSB/LTSC), позволяющая устанавливать и обновлять программы, без необходимости самостоятельно искать установщики.
Пусть её "консольность" тебя не пугает - программа достаточно простая в обращении, и эта статья поможет тебе её освоить.
Winget работает следующим образом: когда ты хочешь установить или обновить программу, на компьютер скачивается небольшая "база данных" с информацией об актуальных версиях программ и их источниках.
Далее, Winget обращается к ОФИЦИАЛЬНОМУ сайту или репозиторию производителя и скачивает оттуда установщик. Затем, происходит установка или обновление из него.
Репозиторий — это специальное цифровое хранилище, где размещается исходный код программ или их дистрибутивы (установщики).
Конечно, в нём нет прям "всего" софта, но, к примеру, на моём ПК он покрывает 90% бесплатного софта и даже немного платного, о чём будет сказано далее.
Работа с Winget.
Как воспользоваться Winget-ом?
Для корректной работы winget, особенно на свежеустановленной системе, необходимо проверить обновления в магазине приложений "Microsoft Store", поскольку сама утилита обновляется именно через магазин.
Чтобы проверить наличие обновлений, запусти Microsoft Store.
Далее, нажми на кнопку "скачивания".
А затем: "проверить наличие обновлений". Если они будут найдены и не начнут скачиваться автоматически, то нажми "Обновить всё".
Сам Winget в магазине называется "Установщик приложения".
После того, как он обновится, можно приступать к работе с утилитой.
Сам Winget работает через PowerShell. В Windows 11 можно воспользоваться как классическим PowerShell, так и "терминалом", что более удобно и предпочтительно.
Вариант 1: классический PowerShell (Windows 10 и 11).
Этот вариант - единственный в Windows 10 и альтернативный в 11-й системе.
Для его запуска в 10-ке, можно просто открыть пуск и найти его в поиске.
Иногда его можно открыть, просто нажав правой кнопкой по "Пуску". Если там отображается "Командная строка" - воспользуйся поиском через пуск.
Вариант 2: через Терминал (только Windows 11).
В Windows 11 появился терминал: по сути, тот же PowerShell, но в другой "обёртке". Для его запуска достаточно нажать правой кнопкой мыши по "пуску" и запустить его (опять же - без прав администратора).
Либо, его так же можно найти через поиск в "пуске".
Winget работает только в PowerShell и терминале, в обычной "командной строке" воспользоваться им не получится!
Запускать PowerShell или терминал настоятельно рекомендуется без прав администратора, поскольку некоторые программы устанавливаются в пользовательскую папку и запуск в режиме администратора может вызвать ошибки.
Права будут запрошены автоматически при установке/обновлении программ, если они требуются.
Обновление программ.
Начнём с одной из двух основных функций Winget-а: обновление программ.
Сразу оговорюсь, что в редких случаях, если программа была установлена из другого источника, winget может выдать ошибку, но в большинстве случаев - всё работает корректно.
Имей ввиду, что через winget прилетают обновления и для некоторых "платных" программ, так что если у вас установлена "нелицензионная" версия - то обновлять её не стоит, поскольку может слететь акцивация.
Итак, PowerShell запущен, теперь нужно заставить программу проверить обновления. Для этого, воспользуемся следующей командой:
winget update
После её прописывания, нужно немного подождать: загрузится та самая "база", о которой шла речь выше.
Как только загрузка будет выполнена и обновления проверятся, ты увидишь результат, примерно такой:
Как можно видеть, в моём случае обновления найдены для 4-х программ, и среди них есть 2 платные: Adobe Acrobat Pro и AOMEI Backupper.
Если ты хочешь обновить ВСЕ программы из списка, здесь подойдёт такая команда:
winget update --all
Она в порядке очереди автоматически обновит все программы.
Но что делать, если нужно обновить лишь конкретные, скажем, только 7zip, или 7zip и AnyDesk?
Для этого, можно указать списком (через пробел) те программы, что мы собираемся обновить. К примеру, так:
winget update 7zip AnyDesk
Можно указать сколько угодно программ последовательно, или всего одну. А если получишь ошибку, что "программа/пакет не найден", то напиши название полностью, как указано в столбце "ИД".
Пример:
winget update 7zip.7zip AOMEI.Backupper.Standard
Итак, предположим, я хочу обновить только 7zip. Для этого, пишу команду "winget update 7zip" и... просто жду: она автоматически скачается и установится, никаких дополнительных действий (кроме одобрения прав администратора) не потребуется: все шаги в установщике будут пропущены. Как только установка будет завершена, программа напишет.
Пример успешного обновления или установки:
Но что, если ты сам хочешь пройти все шаги установки, снять какие-то галочки и так далее?
Для такой "выборочной" установки существует аргумент: -i
То есть, достаточно написать что-то вроде этого:
winget update 7zip -i
В таком случае, от пользователя потребуются действия в установщике. На примере видно, что в отличии от обычной команды, появилось типичное окно установщика:
Если же, наоборот, хочется, чтобы программа установилась/обновилась вообще без каких-либо дополнительных окон, здесь можно воспользоваться аргументом -h.
К примеру:
winget update 7zip -h
Тогда не появится вообще никаких дополнительных окон, то есть - процесс установки видно не будет. Терминал лишь напишет об успешной установке, или выдаст ошибку, если что-то пойдёт не так.
Поиск и установка программ.
Как писалось ранее, вторая основная задача winget - устанавливать программы.
На самом деле, сама установка выполняется элементарно:
winget install имя_программы
Но иногда, недостаточно просто написать имя программы: может появится ошибка, что "пакет не найден". Потому, установку я рекомендую делать через указание ID пакета.
Звучит сложно, но на самом деле - поиск выполняется довольно просто. Если нам нужно найти нужную программу/пакет, то можно воспользоваться такой командой:
winget search имя_программы
К примеру, вот так выполняется поиск 7zip.
winget search 7zip
Часто можно увидеть довольно обширный список программ, но нужная часто находится сверху, или имеет довольно простой ID пакета, по типу 7zip.7zip
Или вот пример с Google Chrome:
Да, здесь список намного больше, но я написал в поиске просто "google". В списке виден ID пакета: "Google.Chrome"
Уточняя разницу, скажу, что обычная и "EXE" версии почти не отличаются, просто у обычной используется другой формат установщика - .msi.
Для обычного пользователя это не имеет никакого значения и выбирать можно любой.
Таким образом, можно найти большинство программ. Но есть важный нюанс:
В редких случаях, winget содержит в себе ссылки на очень старые версии программ, к примеру, аудиоплеер AIMP.
Но это скорее исключение, чем правило.
Пример устаревшей версии, которую предлагает winget:
Кстати, как ты мог заметить, у некоторых программ бывает необычный ID, к примеру, как у данного плеера:
Такой ID означает, что приложение будет скачено с Microsoft Store: да, winget умеет их ставить и обновлять, хотя для таких целей, его использование не очень целесообразно.
Так что, будь внимателен и проверяй, какой ID используется. У ВСЕХ приложений Microsoft Store ID имеет подобный формат без точек, так что его сложно перепутать с "классическим".
Я рекомендую ставить не магазинные версии программ из-за ряда особенностей и ограничений последнего, хотя в последнее время ситуация стала значительно лучше.
Удаление программ.
Через winget можно не только устанавливать и обновлять программы, а также - удалять их одной простой командой:
winget remove имя_программы
К примеру, "winget remove 7zip".
Этот метод абсолютно идентичен удалению через "Установка и удаление программ" и большого смысла не имеет.
Заключение.
Как видишь - в системе встроен очень крутой инструмент для установки и обновления программ: теперь не нужно копаться в интернете в поисках официального сайта, ибо всё собрано в одном месте.
Конечно, если сайт или репозиторий заблокирован РКН - скачать программу "напрямую" не получится, но в остальном - winget значительно упрощает жизнь, особенно, если привыкнуть.
Автор статьи: Артем "Arkami" Каминский















Не ну с кайфом, с кайфом + респект
Нет комментариев для отображения
Нет комментариев для отображения