Система управления пакетами windows

Windows Package Manager (winget)

О программе

Что нового

Новое в Windows Package Manager

Системные требования

Операционные системы:

  • Windows 10 версии 1709 (сборка 16299) или выше

Полезные ссылки

Подробное описание

Windows Package Manager (winget) – новый консольный менеджер приложений для Windows. С помощью Windows Package Manager можно автоматизировать установку и обновление программ с помощью команд в Windows PowerShell или Windows Terminal.

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

Каждое доступное приложение проходит проверку фильтром SmartScreen и статическим анализатором. Также, проверяются манифесты, хэш и несколько других параметров, чтобы ограничить попадание в репозиторий вредоносного программного обеспечения.

Windows Package Manager будет удобным инструментом для пользователей и системных администраторов, которые привыкли управлять приложениями из терминала Linux. Предварительная версия WinGet поддерживает следующие команды:

  • winget install — установка указанного приложения
  • winget show — отображение сведений о приложении
  • winget source — управление источниками приложений
  • winget search — вывод списка всех или определенных приложений
  • winget hash — хэширование файлов установщика
  • winget validate -для утверждение файла манифеста

Оценка пользователей

Другие программы

Windows Terminal
Терминал от Microsoft объединяет инструменты CMD, PowerShell и WSL

Microsoft PowerShell Core
Многофункциональная оболочка командной строки для Windows, Mac и Linux

Как использовать winget: менеджер пакетов Windows 10

Новый менеджер пакетов Windows от Microsoft упрощает установку приложений, позволяя это делать одной командой. В этой статье рассказываем про Windows Package Manager и новую команду winget.

Что такое менеджер пакетов Windows?

Менеджеры пакетов распространены в Linux. Вместо того, чтобы искать приложение в Интернете, загрузить установщик и запускать мастер установки, вы можете просто запустить быструю команду для поиска и установки приложения по его имени.

Например, чтобы установить Microsoft PowerToys , вы можете открыть окно терминала и ввести winget install powertoys. Команда автоматически найдет, загрузит и установит программное обеспечение без каких-либо дополнительных действий с вашей стороны. Это так просто.

Под капотом Microsoft размещает собственный репозиторий программного обеспечения, а другие организации и частные лица могут размещать свои собственные репозитории. Это важная функция, которая повышает производительность в Linux, особенно для разработчиков и системных администраторов.

Менеджер пакетов Windows — это проект с открытым исходным кодом, доступный и на GitHub .

Как установить менеджер пакетов Windows

Начиная с 19 мая 2020 года менеджер пакетов Windows доступен в форме предварительного просмотра. Позднее он будет интегрирован непосредственно в обновление для Windows 10.

Сейчас есть несколько способов получить его:

  • Установите инсайдерскую сборку Windows 10, зарегистрируйтесь в программе инсайдеров Windows Package Manager и установите обновление для пакета установщика приложений из Магазина Microsoft. Вы получите автоматические обновления диспетчера пакетов Windows по мере их выпуска, но вам придется запустить нестабильную версию Windows 10.
  • Загрузите менеджер пакетов Windows .appxbundle с GitHub. Установите его, дважды щелкнув файл и нажав Update . Вы должны будете установить будущие обновления вручную с этой же страницы загрузки, но вам не придется запускать нестабильную версию Windows 10.

В будущем в этом нет необходимости, и winget будет встроен во все стабильные версии Windows 10. По состоянию на май 2020 года он находится в форме предварительного просмотра, так как Microsoft тестирует его и устраняет ошибки.

Как использовать winget, менеджер пакетов Windows

Вы можете запустить winget из Windows PowerShell или из классической командной строки. Мы рекомендуем установить новый терминал Windows, если вы этого еще не сделали.

Вы можете скачать Windows Terminal из Магазина Microsoft. Вы даже можете получить исходный код на GitHub. Да, новый терминал Windows с открытым исходным кодом.

Из командной строки выполните команду winget , чтобы просмотреть дополнительную информацию об использовании инструмента.

Windows 10 поставляется с пакетным менеджером

Xakep #263. Кредитки в опасности

Microsoft прикладывает все силы, чтобы сделать Windows 10 самой лучшей операционной системой для настольных компьютеров. Ради этого компания даже не стесняется заимствовать лучшие функции у главного конкурента — Linux. В частности, Windows 10 содержит в своём составе полноценный пакетный менеджер. Таким образом, в Windows теперь возможно запустить командную оболочку и установить VLC, Firefox или тысячи других программ непосредственно из командной строки.

В настоящее время пакетный менеджер — одно из главных преимуществ Linux перед Windows и OS X. В то время как пользователям других операционных систем приходится запускать графический инсталлятор и многократно нажимать клавишу Next, под Linux достаточно всего лишь запустить команду вроде apt-get install vlc . Таким образом, процесс установки и обновления программ под Linux гораздо проще и приятнее.

Однако, разработчики Windows 10 намерены лишить конкурента этого преимущества. В состав этой операционной системы входит пакетный менеджер под названием OneGet. С его помощью устанавливаются программы командами вроде Find-Package VLC и Install-Package Firefox .

OneGet делает всё, что и должен делать пакетный менеджер: поиск программ, добавление новых репозиториев, установка и деинсталляция пакетов и т.д. При этом он использует такой же формат пакетов, что и Chocolatey — один из самых популярных пакетных менеджеров под Windows.

OneGet был представлен как часть пакета расширений Windows Management Framework 5.0 Preview для Windows 8.1 в сентябре 2014 года, но в Windows 10 он станет стандартным инструментом. Судя по всему, пакетный менеджер будет доступен через интерфейс PowerShell, известное средство для автоматизации действий в Windows, которое часто используется системными администраторами.

Остаётся открытым вопрос, как Microsoft будет популяризовать использование OneGet. Станет ли он чисто гиковским инструментом, о котором знают немногие, либо будет повсеместно применяться для установки программ и обновлений.

Управление пакетами в Windows (часть 2)

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

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

Set-ExecutionPolicy Bypass -Scope Process -Force;
iex (( New-Object System.Net.WebClient).DownloadString( ‘https://chocolatey.org/install.ps1’ ))

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

Для начала выведем справку по основным командам. Синтаксис у chocolatey довольно простой и лаконичный, в стиле linux.

Поиск пакетов

Перед тем, как установить пакет, его надо найти. Приступим к поиску на примере популярного файлового менеджера TotalCommander.

Найти нужный пакет можно с помощью команды search, list или find (кому как больше нравится). Самый простой вариант поиска:

choco search totalcommander

А теперь немного усложним поиск и найдем все (all) одобренные (approoved-only) и не битые (not-broken) версии TotalCommander:

choco search totalcommander ––all ––approoved-only ––not-broken

Если точное имя пакета неизвестно, можно искать по меткам или тегам (tags). Обычно в тегах записывается информация, позволяющая более-менее точно определить принадлежность пакета. К примеру, TotalCommander относится к файл-менеджерам, соответственно его можно найти такой командой:

choco search file manager ––by-tag-only

Также при поиске можно воспользоваться функционалом PowerShell, например передать результаты поиска командлету Out-GridView:

choco list | sort Name | Out-GridView

Еще с помощью поиска можно посмотреть подробную информацию о пакете, такую как дата выпуска, функционал и т.п. В качестве примера выведем данные о TotalCommander 9.22:

choco search totalcommander ––version=9.22 ––detail

Особое внимание обратите внимание на раздел Package parameters. В нем описаны ключи установки для данного пакета, с помощью которых можно кастомизировать установку приложения.

Установка пакетов

Для простой установки TotalCommander достаточно выполнить команду:

choco install totalcommander

Но мы немного усложним задачу, к примеру установим определенную версию и произведем дополнительные настройки:

choco install totalcommander ––version=9.22 ––params ′/InstallPath:%systemdrive%\totalcmd /DesktopIcon /ShellExtension′ ––yes

С помощью ключа params мы меняем директорию установки, добавляем ярлык приложения на рабочий стол и в контекстное меню проводника. Эти параметры описаны в разделе Package parameters в свойствах пакета. Ключ yes нужен для автоматического подтверждения, чтобы при установке не требовалось вмешательства пользователя.

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

Напомню о том, что успешная установка пакета вовсе не гарантирует установку приложения. Поэтому, на всякий случай, убедимся, что TotalCommander появился в меню Пуск,

на рабочем столе и в контекстном меню проводника.

На волне успеха 🙂 установим еще несколько пакетов. На сей раз сделаем это одной командой, просто перечислив имена пакетов через пробел:

choco install firefox adobereader xnview ––yes

В качестве альтернативы при установке пакетов можно использовать файл конфигурации. В файл можно прописывать любое количество пакетов с любыми дополнительными параметрами. Это очень удобно, особенно если приходится часто устанавливать одинаковый набор приложений с определенными параметрами. Файл конфигурации представляет из себя самый обычный XML-файл с расширением .config, имя может быть любое.

Для примера создадим вот такой файл package.config. В него добавим три пакета, с параметрами и без.

При использовании файла конфигурации при установке вместо имени пакета указывается имя файла (либо путь к нему, если файл находится отдельно):

choco install package.config ––yes

Ну и посмотреть уже установленные пакеты можно с помощью команды search\list:

choco list ––local-only

Обновление пакетов

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

Проверим, как работает обновление на многострадальном TotalCommander. Я нарочно установил не самую новую версию, чтобы потом ее обновить.

Для полноты эксперимента проверим текущую версию, сейчас она 9.22.

Теперь запускаем обновление командой:

choco upgrade totalcommander ––yes

После чего еще раз проверяем версию. Как видите, она изменилась на 9.22a, а значит обновление прошло успешно.

Что интересно, chocolatey позволяет ″обновиться″ и на более раннюю версию, т.е. произвести даунгрейд. Откатим TotalCommander обратно на версию 9.22 командой:

choco upgrade totalcommander ––version=9.22 ––allow-downgrade ––yes

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

Можно обновить один пакет, несколько или все сразу:

choco upgrade all ––yes

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

Еще один интересный момент.

К примеру я хочу обновить Far, которого у меня отродясь не было. Умный chocolatey не находит указанный пакет, сообщает об этом и… устанавливает его. То есть если указанного для обновления пакета нет в системе, то он будет автоматически установлен.

Удаление пакетов

Завершающим этапом жизненного цикла пакета является его удаление из системы. Для этой цели в состав каждого пакета как правило входит скрипт по деинсталляции chocolateyUninstall.ps1. Кроме того, при установке пакета choco отслеживает изменения реестра, производимые собственными установщиками приложений. При удалении пакета эта информация используется службой Auto uninstaller для корректного удаления приложения.

Для наглядности удалим один пакет, к примеру AdobeReader:

choco uninstall adobereader ––yes

Следующий пакет удалим вместе со всеми зависимостями, на всякий случай укажем номер версии:

choco uninstall firefox ––version=66.0.3 ––remove-dependencies ––yes

Кстати, choco отслеживает все зависимости и если удаляемый пакет нужен еще кому нибудь, то его удаление отменяется.

Войдя во вкус, удалим все оставшиеся пакеты одной командой:

choco uninstall all ––yes

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

Choco GUI

Не секрет, что далеко не все пользователи Windows любят работать в командной строке 🙂 На такой случай у choco есть графическая оболочка с названием Chocolatey GUI. Устанавливается она из пакета, командой:

choco install chocolateygui

Что интересно, нормально установить пакет chocolateygui мне не удалось, при его установке я все время получал ошибку. Судя по тексту ошибки, инсталлятор не мог записать лог установки, поскольку в параметрах установки указан несуществующий путь.

В принципе можно было загрузить пакет и отредактировать его, после чего корректно установить. Но я не стал возиться, а просто стянул из пакета инсталлятор, обычный MSI-файл, и установил его вручную.

Итак, что же дает нам Choco GUI? Да в принципе все то же самое, но в чуть более удобном виде. С ее помощью мы можем найти нужный пакет в репозитории,

посмотреть подробную информацию о нем, при необходимости установить.

А также можно посмотреть все установленные пакеты, обновить или удалить их.

Настройка chocolatey

Ну и напоследок немного покопаемся во внутренностях choco. Итак, само приложение choco.exe можно найти по адресу C:\ProgramData\chocolatey, указанному в переменной окружения %ChocolateyInstall%. Все установленные пакеты можно найти в папке lib, в папке config находится файл конфигурации, в остальных папках лежат утилиты и модули PowerShell, используемые при установке пакетов.

Дистрибутивы программ, необходимые для установки пакетов, загружаются в кэш. По умолчанию он находится во временной директории в профиле текущего пользователя, путь к которой хранится в переменной окружения %temp%.

Глобальные настройки choco хранятся в файле конфигурации, и при необходимости их можно изменить. Файл конфигурации для этого трогать вовсе не обязательно, для этой цели у choco есть специальная команда config. К примеру, просмотреть текущую конфигурацию можно командой:

choco config list

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

choco config set cachelocation C:\temp\choco

И проверим результат:

choco config get cachelocation

Как видите, установка программ из chocolatey — процедура достаточно простая и удобная. Конечно есть отдельные недочеты и ошибки, но в целом все работает как надо. Кроме того, в своей статье я рассмотрел лишь часть функционала, на самом деле ″шоколадка″ может гораздо больше. Для более тесного знакомства с ней на официальном сайте есть подробная документация, рекомендую ознакомиться.

Ну а в целом использование пакетов для управления ПО имеет свои преимущества. И хотя сейчас этот метод не пользуется широкой популярностью, но в дальнейшем все может измениться. Впрочем, это лишь мое мнение 🙂

Читайте также:  Виджеты для linux deepin
Оцените статью
Разработчик: Microsoft (США)
Лицензия: Бесплатно
Версия: 0.2.10971 Preview
Обновлено: 2021-04-15
Системы: Windows 10
Интерфейс: русский / английский
Рейтинг:
Ваша оценка: