менеджер пакетов для windows

Представляем Windows Package Manager 1.0

Мы начали путь к созданию собственного диспетчера пакетов для Windows 10, когда анонсировали предварительную версию диспетчера пакетов Windows на Microsoft Build 2020. Мы выпустили проект на GitHub как совместный с открытым исходным кодом, и участие сообщества было очень важным аспектом! И вот недавно прошла конференция Microsoft Build 2021.

И мы рады объявить о выпуске Windows Package Manager 1.0! Подробности под катом!

менеджер пакетов для windows

Клиент

менеджер пакетов для windows

Как мне это получить?

Если вы используете любую текущую сборку Windows Insider или подписались на группу Windows Package Manager Insider, возможно, она у вас уже есть. Диспетчер пакетов Windows распространяется вместе с установщиком приложений из Microsoft Store. Вы также можете загрузить и установить диспетчер пакетов Windows со страницы выпусков GitHub или просто установить последнюю доступную версию.

менеджер пакетов для windows

Репозиторий сообщества Microsoft

Windows Package Manager Manifest Creator Preview

Мы также выпускаем еще один инструмент с открытым исходным кодом, который поможет отправлять пакеты в репозиторий сообщества Microsoft. Откройте свой любимый интерфейс командной строки и выполните winget install wingetcreate, чтобы установить создатель манифеста диспетчера пакетов Windows (Windows Package Manager Manifest Creator Preview). После установки инструмента выполните wingetcreate new и укажите URL-адрес установщика. Затем инструмент загрузит установщик, проанализирует его, чтобы определить любые значения манифеста, доступные в установщике, и проведет вас через процесс создания действительного манифеста. Если вы предоставите свои учетные данные GitHub при появлении запроса, он даже создаст ветвь репозитория, создаст новую ветку, отправит pull request и предоставит вам URL-адрес для отслеживания его прогресса. На изображении ниже показано, как wingetcreate выполняется в Терминале Windows через PowerShell.

менеджер пакетов для windows

Приватные репозитории

И последнее, но не менее важное: мы выпустили эталонную реализацию для источника REST API, чтобы вы могли разместить свой собственный частный репозиторий. Это новый тип источника для диспетчера пакетов Windows. Нашим источником по умолчанию является пакет «PreIndexed», поставляемый через Microsoft Store, но вы можете добавить дополнительные источники на основе REST, если они правильно реализуют схему REST API на основе JSON.

Источник

Диспетчер пакетов Windows

Диспетчер пакетов Windows — это комплексное решение для управления пакетами, которое состоит из программы командной строки и набора служб для установки приложений в Windows 10 и Windows 11.

Диспетчер пакетов Windows для разработчиков

Разработчики используют программу командной строки winget для обнаружения, установки, обновления, удаления и настройки проверенного набора приложений. После установки разработчики могут получить доступ к winget с помощью терминала Windows, PowerShell или командной строки.

Диспетчер пакетов Windows для независимых поставщиков программного обеспечения

Независимые поставщики программного обеспечения могут использовать Диспетчер пакетов Windows в качестве канала распространения пакетов программного обеспечения, содержащих их средства и приложения. Для отправки пакетов программного обеспечения (содержащих установщики MSIX, MSI или EXE) в Диспетчер пакетов Windows мы предоставляем на сайте GitHub репозиторий манифестов пакетов сообщества Майкрософт с открытым исходным кодом. Независимые поставщики программного обеспечения могут передавать в него манифесты пакетов, которые затем могут быть включены в Диспетчер пакетов Windows. Манифесты проверяются автоматически, однако они также могут просматриваться вручную.

Основные сведения о диспетчерах пакетов

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

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

Диспетчеры пакетов сторонних разработчиков могут использовать репозиторий манифестов пакетов сообщества Майкрософт для пополнения своего каталога программного обеспечения.

Источник

Магия Chocolatey: apt-get и yum для Windows

менеджер пакетов для windows
Сегодня я расскажу Вам о волшебстве. И это волшебство способно изменить жизнь системного администратора Windows раз и навсегда.

В наше время становится все меньше и меньше людей, которые хоть раз не устанавливали софт в среде Linux. Это невероятно просто: для установки midnight commander (mc), в среде RH (RedHat Enterprise, CentOS, Fedora, и т.д) нам всего лишь нужна пара «волшебных» команд:

Менеджер пакетов yum позаботится о том, чтобы установилась самая свежая версия mc, а также о зависимостях пакета, если таковые имеются. Но что же делать, если в нашем распоряжении находится Windows, а мы хотим что-то подобное? Правильно, перейти на Linux или читать дальше!

Под моей «опекой» находится гетерогенная сеть из Windows и Linux машин (проще сказать — зоопарк), и вот уже около двух лет для установки софта под Win* я пользуюсь, где это возможно, Chocolatey. Chocolatey (chocolatey.org, github.com/chocolatey) — система управления пакетами, во многом схожая с apt-get или yum, но только для Windows.

На хабре уже касались темы Chocolatey в контексте разработчика, сегодня я хочу взглянуть на этот замечательный инструмент с точки зрения системного администратора. Chocolatey работает на основе технологии NuGet (активно используется разработчиками софта под Windows), и основная черта Chocolatey — пакеты чаще всего не содержат установочных файлов (setup.msi, setup.exe, и т.д. ). Работает это следующим образом: в пакете находится скрипт-установщик на powershell, который скачивает и устанавливает нужную версию установочного файла из нужного места в интернете, а Вам остается только наслаждаться легкостью установки.

Установка Chocolatey

Прежде чем получить возможность использовать магию Chocolatey нам нужно установить ее ядро. Для этого запускаем в командной строке:

Эта команда скачает и запустит основной скрипт установки chocolatey.org/install.ps1, а также настроит требуемые переменные окружения. Теперь, когда у нас есть все необходимое давайте испытаем систему управления пакетами и установим Nodepad++. Достаточно выполнить следующую команду:

Какие еще есть пакеты и откуда они берутся?

Как и NuGet, Chocolatey обладает внушительным списком пакетов, который располагается в репозитории, он же библиотека пакетов. Вот только некоторые из них:

Пакеты добавляются каждый день, ведь любой желающий может добавить свой пакет на chocolatey.org, главное чтобы он отвечал требованиям.

Как это работает?

Я хотел бы подробнее разобрать содержание пакетов Chocolatey на примере logstash, который я создавал специально для развертывания агента logstash на сервере Windows:

Здесь видно, что в пакете всего 2 файла: logstash.nuspec и chocolateyInstall.ps1.

Применение:

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

Cmd и Powershell скрипты

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

Представьте сколько времени это экономит Вам?

Puppet

Я использую Puppet для управления конфигурацией своей инфраструктуры, что экономит мне массу времени и нервов. В Puppet есть замечательная концепция ресурсов, а также декларативный стиль, которые в купе помогают мыслить абстрактно, на уровне «Какая программа должна стоять на том или ином сервере», а не на уровне «Какие комманды я должен запустить на Windows, а какие на Linux». Для Puppet существует провайдер Chocolatey, который позволяет нам сделать следующее:

Обо всем остальном позаботятся Puppet и Chocolatey. Поверьте, это намного удобнее чем производить установку из msi файла, который нужно еще где-то захостить, а также удостовериться что при обновлении версии (которое еще нужно сделать) старые версии тоже сохраняться и ничего при этом не сломается.

Chocolatey и Desktop

Предлагаю рассмотреть два способа использования Chocolatey для администрировании рабочих станций.

ChocolateyGUI — это графический интерфейс для системы управления пакетов Chocolatey. Удобный способ для обзора текущего состояния репозитория, а также состояния локально-установленных пакетов. Мне почему-то очень сильно напомнило раннюю версию synaptic или даже aptitude. Работает достаточно сносно. Установить его, кстати, можно из коммандной строки:

менеджер пакетов для windows

Можно пойти еще дальше, использовать интерфейс WPI для удобного выбора пакетов, в котором будут исполняться команды Chocolatey. При помощи WPI можно удобно группировать программы по категориям, а также создавать шаблоны и наборы установки.
Решение не всегда сможет стать абсолютной альтернативой использования USB-HDD в качестве источника, но заменив все возможные компоненты на аналогичные из репозитория Chocolatey Вы избавите себя от мучительного копирования образа (папки) с полным набором софта (Photoshop, Office, 3D Max с Архикадом, что там еще?) и оболочкой WPI (а все ради того, чтобы поставить «легкие» программы вроде Google Chrome, Notepad++, Avast и т.п.).

менеджер пакетов для windows
менеджер пакетов для windows
менеджер пакетов для windows
Таким образом, WPI всего лишь является оболочкой для запуска команд Chocolatey, что позволяет уменьшить суммарный объем дистрибутива. Конечно, при таком подходе на клиентской машине уже должен быть рабочее интернет-подключение, что сегодня не является проблемой, за исключением отдельных случаев.
Возвращаясь к программам которые отсутствуют в репозитории Chocolatey.org, следует упомянуть, что Chocolatey поддерживает любые NuGet фиды, а не только предлагаемый по-умолчанию chocolatey.org. Заливаем важные файлы в DropBox и создаем свой пакет где-нибудь на www.myget.org — это очень просто!

Если кому интересно, могу рассказать в подробностях (в форме отдельного поста) как создать свой пакет и как загрузить его в репозиторий chocolatey.org, и о том, как я научил Windows устанавливать все обновления без моего участия (с перезагрузками и лицензиями), как я обновляю базу maxmind.dat в автоматическом режиме, как я использую logstash и многом другом, и все это не без помощи chocolatey и puppet!

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

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

Источник

Chocolatey — apt-get для Windows

Chocolatey — менеджер пакетов в среде Windows по аналогии с apt-get в Linux Мире.

менеджер пакетов для windows

Начал использовать по причине разработки на Node.js под Nodester. Мне хотелось бы регулярно обновлять ноду, git, dropbox, да и тот же skype, при этом, не заморачиваясь со скачиванием msi инсталяторов и установками, а просто обновить одной командой:

Так, как для работы постоянно требуется доступ к консоли, git, node, jade. Я хотел бы немножечко проиллюстрировать работу с Chocolatey в контексте (на примере) подготовки к разработке под Nodester.

Требования для установки:

Windows XP/Vista/7/2003/2008
.NET Framework 4.0
PowerShell 2.0

Устанавливается просто, выполнением такой незамысловатой команды (в cmd.exe в PowerShell не обрабатывается):

менеджер пакетов для windows

После чего автоматически устанавливается в C:\Chocolatey, в C:\Chocolatey\libs будут находится описания пакетов, библиотеки. Основные же модули программ по дефолту устанавливаются в Program Files (x86).

Все основные и необходимые, для девелопера, пакеты присутствуют. Интерпретируемые языки, типа PHP, Ruby, Python, Node.js. БД — MySQL, MongoDB, SQLite. Контроль версий Git, Mercurial, SVN. Notepad++, Sublime. Сalibre для обработки книг под Kindle.

1. Установка пакета Node.js вместе с npm

Эта команда аналогична следующей

chocolatey install nodejs.install

менеджер пакетов для windows

Правда консоль придется закрыть и открыть заново, что бы стали доступны записанные пути в path.

менеджер пакетов для windows

2. Когда нода установлена уже можно вести разработку, инсталлировать модули через менеджер пакетов. Вот и пакетик для Нодстера

менеджер пакетов для windows

3. Без Git-a на Nodester совершить деплой не удастся, так что устанавливаем его с помощью Chocolatey

менеджер пакетов для windows

Вот список того, что я ещё дополнительно установил.

cinst Console2
cinst putty
cinst curl
cinst Wget

Пробуем putty, команда открывает окно программы и смотрим на, то что git поставился успешно (напомню, что придется закрывать консоль и открывать заново).

менеджер пакетов для windows

4. Вот видим что к Nodester можем свободно обращаться

менеджер пакетов для windows

Дальше остается рутинный процесс, инсталяция на локальной машине через npm требуемый в проекте модулей, типа expressjs, jade, тестирование на локальном веб-сервере который загружает нода. Все это дело ведется в git, коммитится, после чего совершается push в репы nodester. На nodester-е (список команд) так же потребуется установить npm модули через nodester npm install appname.

Не для всего подходит Chocolatey. Сама идеология Windows и создаваемых под платформу приложений склоняется к тому, что они сами должны лезть в автозагрузки и при каждом удобном случае без разрешения лезть обновляться. Так, в пакетах есть Chrome, но мы то знаем про GoogleUpdater.exe который и так все обновляет. Так, же и про Notepad++ который сам может полезть за обновлениями. Skype и самому обновить можно. Однако если изначально все ставить по-шоколадному, быстрое обновление одной командой будет приносить удовольствие, особенно если это относится не к GUI инструментам.

Напоследок приложу видео ролик с оф. сайта

В комментариях попросили добавить пакет Slik Subversion (SVN). Я думаю полезно будет проиллюстрировать, как просто это осуществляется. Также прояснится принцип работы «шоколада».

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

1. Создаем файл описания C:\sliksvn\sliksvn.nuspec с соответствующим текстом (исходная болванка):

2. После чего создаем скрипт инсталляции C:\sliksvn\tools\chocolateyInstall.ps1

Install-ChocolateyPackage ‘sliksvn’ ‘msi’ ‘/quiet’ ‘www.sliksvn.com/pub/Slik-Subversion-1.7.4-win32.msi’ ‘http://www.sliksvn.com/pub/Slik-Subversion-1.7.4-x64.msi’

Write-ChocolateySuccess ‘SlikSVN’
> catch <
Write-ChocolateyFailure ‘SlikSVN’ «$($_.Exception.Message)»
throw
>

Из кода становится понятно. Что скачивается с оф. сайта либо 32-бита, либо 64 бита инсталятор и будет ставиться в тихом режиме не отвлекая вопросами.

3. Доп. файл установки (может отсутствовать), а данном случае не принципиально C:\sliksvn\tools\install.ps1

4. Собираем пакет. Его собрать можно NuGet-ом. Пропишите доступ к нему в path, либо обращайтесь через полный путь. Лежит в C:\Chocolatey\chocolateyInstall\NuGet.exe

> cd C:\sliksvn
> nuget pack

Как все работает при установке пакета? При установке, все что запаковано в пакете nupkg — скрипты установки, описание, и другие файлы, бинарные архивы (есть много интересных примеров что там может быть) попадает в папку C:\Chocolatey\lib\НАЗВАНИЕ_ПАКЕТА, а вот действия прописанные в скрипте, в нашем случае тихая установка выполняются по дефолту, то есть SlikSVN у меня 64-бита система, значит он ставится в C:\Program Files\SlikSVN\ и сам прописывается в path. Но на самом деле установка может быть любой распаковка из собственного архива, который будет входить в пакет, либо ещё какие-то действия со своими входящими библиотеками. Все зависит от фантазии.

Как его удалить? Сам SlikSVN через Установка-Удаления, как любую стандартно установленную программу, и из C:\Chocolatey\lib\НАЗВАНИЕ_ПАКЕТА руками.

В последних версиях уже появилось удаление пакетов через chocolatey uninstall. По команде удаляется содержимое пакета из C:\Chocolatey\lib\ название пакета, то есть утилиты которые устанавливаются распаковываясь в эту папку удаляются полностью. То что инсталлировалось в систему и в Program Files — не трогается.

Списка установленных, как логично было бы предположить по chocolatey list пакетов — нет. Но ведь это можно легко исправить, как вариант таким хаком:

Теперь по chocolatey list мы получим:

Источник

Windows 10 Package Manager: Установка приложений из Магазина Microsoft, автозаполнения команд PowerShell

Windows Package Manager (winget) впервые был представлен в мае 2020 на конференции для разработчиков Microsoft Build. Инструмент позволяет устанавливать приложения из интерфейса командной строки.

Чтобы включить функции, скопируйте и вставьте в этот файл следующие инструкции:

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

Новый репозиторий msstore содержит 289 приложений, связанных с программированием, работой с сетью и разработкой, которые можно установить непосредственно из Магазина Microsoft.

Установленные из репозитория MSStore приложения будут также отображаться в Microsoft Store. Также для них доступны стандартные процедуры обновления.

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

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

Автозаполнения команд PowerShell

Помимо установки приложений из Microsoft Store, новая версия включает экспериментальную функцию автозаполнения.

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

Протестировать функциональность можно с помощью следующей последовательности клавиш, предлагаемой Microsoft:

Инсайдеры Windows могут протестировать новые функции WinGet уже сейчас. В качестве альтернативы можно воспользоваться инструкциями на GitHub.

Источник

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

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