Crossroads » Windows » Chocolatey – менеджер пакетов для Windows

Chocolatey – менеджер пакетов для Windows

  • Dislike
  • 0
  • Like
Chocolatey – менеджер пакетов для WindowsДля тех, кто никогда не видел десктопных операционных систем на ядре Linux, процесс обновления пакетов в Windows не кажется чем-то особенным. Периодически та или иная программа сообщает пользователю, что есть более свежая версия; пользователь нажимает «ОК», и в лучшем случае программа обновляется. Но чаще всего открывается браузер на странице программы, где предлагается скачать новую версию, за которой тянется куча ненужного дерьма, или платная версия бесплатной программы, если невнимательный пользователь не прочитал описание рядом со множеством галочек и не снял лишние. И так с каждой программой, установленной вручную. Централизованно обновляются лишь компоненты Windows и приложения, установленные через Microsoft Store.

В дистрибутивах Linux же есть менеджеры пакетов. Apt в Debian, Pacman в ArchLinux и так далее. Одной командой можно обновить не только компоненты ОС, но и все прикладные программы, установленные в системе. Это вызвано, в первую очередь тем, что исторически программы в Linux зависят от системных библиотек. При установке программы пакетный менеджер проверяет наличие системных зависимостей и устанавливает их отдельно, если обнаруживает, что чего-то не хватает. Поскольку операционных систем на ядре Linux великое множество, то пакет, собранный под Ubuntu, не запустится в ArchLinux в том виде, в каком он есть. И наоборот. Требуется пересборка пакета. Не считая того, что этот процесс требует определённых навыков, косорукая сборка пакета может привести к нестабильной работе как самой программы, так и операционной системы в целом. По той же причине программы в таких ОС распространяются централизованно, через специальные репозитории, от куда их и скачивает пакетный менеджер. Чем больше готовых пакетов под определённый дистрибутив, тем он популярнее. Универсальная система пакетов типа Snap или Flatpak появилась относительно недавно, но при этом пакеты по-прежнему управляются пакетным менеджером.

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

Проект Chocolatey развивается с 2011-го года и сейчас достаточно удобен и функционален для повседневного использования. Инструмент может не только обновлять, но и устанавливать программы. То есть это полноценный пакетный менеджер. Это не то же самое, что пакетные менеджеры в Linux, так как здесь нет репозитория ПО из-за правового аспекта распространения большинства программ в Windows. Chocolatey больше похож на систему портов во FreeBSD, где он оперирует скриптами, в которых прописан процесс установки. То есть скрипты содержат все инструкции по скачиванию и установке той или иной программы, а пользователю нужно лишь ввести одну команду в терминале и всё остальное будет сделано автоматически.

Chocolatey имеет несколько версий, в зависимости от нужд пользователя. Для домашнего использования более чем достаточно бесплатного варианта. Сравнение можно найти на соответствующей странице проекта. В бесплатной версии нет рекламы и поп-апов с предложениями купить платную версию. Это простой и удобный инструмент командной строки. Я не буду расписывать все преимущества и аспекты работы Chocolatey, так как это займёт слишком много времени. Всю дополнительную информацию можно найти в Wiki проекта. Я лишь хочу рассказать, как установить Chocolatey на ПК и начать пользоваться.

Всё взаимодействие с Chocolatey происходит в PowerShell с правами администратора. Системные требования: PowerShell v3+ и .NET Framework 4+. Если у вас современная и поддерживаемая версия Windows (на момент написания Windows 8.1 и новее), то всё должно быть в порядке. Для начала нужно убедиться, что в вашей системе разрешено выполнение скриптов. Откройте PowerShell и введите следующую команду:
Get-ExecutionPolicy


По умолчанию в Windows 10 выполнение скриптов запрещено (Restricted). Для разрешения введите следующее:
Set-ExecutionPolicy AllSigned

Или
Set-ExecutionPolicy Bypass -Scope Process


В первом случае разрешено выполнение скриптов. Скрипты и конфигурационные файлы подписаны доверенным издателем. Во втором случае разрешено выполнение любых скриптов. Параметр «-Scope Process» указывает на то, что правило будет действовать на протяжении текущей сессии PowerShell. То есть после перезапуска PowerShell всё вернётся в исходное состояние и разрешать выполнение скриптов придётся каждый раз при старте новой сессии. Я рекомендую первый вариант, дабы не вводить команду постоянно. Если вы не собираетесь ставить что-то самоподписанное, то этого достаточно. Но убедитесь, что ваше антивирусное ПО в актуальном и рабочем состоянии и это не Windows Defender. При разрешённом выполнении подписанных скриптов есть вероятность установить что-то правильно подписанное, но вредоносное. Вариант без проверки подписи приближает нас к временам Windows 95. Более подробную информацию можно найти здесь.

Далее запустите команду установки Chocolatey.
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))


Если внимательно посмотреть, то в команде присутствует следующее:
Set-ExecutionPolicy Bypass -Scope Process -Force;

Необходимо для установки Chocolatey. Вы можете убрать эту часть команды, и разрешить выполнение вручную, когда процесс установки вас об этом спросит. В любом случае после установки придётся перезапустить PowerShell, что приведёт к сбросу вышеуказанного параметра.

По завершении появится предупреждение, что сессию PowerShell нужно перезапустить. Смотрите выше по поводу разрешения на выполнение скриптов.

Теперь Chocolatey работает и можно пользоваться. На скриншоте я показала установку Open Shell (классическое меню «пуск» для Windows). Это просто пример простоты использования. То есть для установки чего-либо нужно ввести команду «choco install имя_программы». Для удаления «choco uninstall имя_программы». Выполнение команды сопровождается запросом на подтверждение выполнения скрипта. На случай если вы передумали, или что-то перепутали. Для автоматического подтверждения выполнения команды используйте параметр «-y» в конце команды. То есть если я хочу установить то же самое, но без лишних вопросов, то нужно ввести следующее:
choco install open-shell -y


Для обновления всех установленных приложений используется следующая команда:
choco upgrade all


Список всех команд и их описание есть здесь. Так же команда «choco --help» покажет подробности в PowerShell. Конфигурационный файл Chocolatey по умолчанию находится по адресу C:\ProgramData\chocolatey\config. С помощью текстового редактора можно отредактировать настройки менеджера. Не нужно этого делать, если на то нет явных причин и понимания того, что за что отвечает.

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

Что делать, если программа у вас уже установлена, но вы хотите управлять её состоянием с помощью пакетного менеджера? Проще всего удалить её и поставить с помощью Chocolatey. Но это не всегда удобно. Второй вариант в том, что нужно убедиться, что программа в актуальном состоянии и просто ввести команду установки. Chocolatey распознает наличие программы в системе и добавить её в свой список. Если попытаться сделать то же самое, но с устаревшей программой, то Chocolatey выдаст ошибку с сообщением о несовпадающих хэш-суммах. Обойти это можно с помощью параметра «--ignore-checksums». Пример на том же Open Shell:
choco install open-shell -y --ignore-checksums


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

В конце хочу обратить внимание на то, что часть программ в Windows имеет вполне вменяемою систему обновлений. Например, Google Chrome по умолчанию обновляется сам без каких-либо вмешательств со стороны пользователя. Нет смысла ставить его с помощью Chocolatey. Я не знаю, что будет, если через Chocolatey установить Office 365 (такая возможность там присутствует). Microsoft Office 365 обновляется через встроенную систему обновлений Windows. Даже если у вас по каким-то причинам отключена система обновлений Windows, то всё равно мне сложно поверить, что обновление Office через Chocolatey пройдёт ровно и без каких-либо последствий.

В любом случае, склонность к ламерству, это всегда недостаток. Не существует универсальных инструментов, и работа с любым существующим требует элементарного понимания процессов, стоящих за его использованием.
Like Dislike

___
Tatyana K.



Tags: Windows, Windows 10, PowerShell


 
  • Creative Commons Licence
  • Norton Safeweb
  • Website Uptime Monitoring By ServiceUptime.com