
В дистрибутивах 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 нужно перезапустить. Смотрите выше по поводу разрешения на выполнение скриптов.

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 пройдёт ровно и без каких-либо последствий.
В любом случае, склонность к ламерству, это всегда недостаток. Не существует универсальных инструментов, и работа с любым существующим требует элементарного понимания процессов, стоящих за его использованием.
___
Tatyana K.
Tatyana K.