Що таке Chocolatey і як його встановити?

Windows вважається однією з найзручніших операційних систем, але її функціонал можна розширити завдяки використанню програмного забезпечення з відкритим вихідним кодом, наприклад, Chocolatey (відомого також як Choco).

Chocolatey: Загальний огляд

Chocolatey – це менеджер пакетів для Windows з відкритим кодом, що нагадує DNF або APT в Linux. Він є незамінним інструментом для розробників та досвідчених користувачів, які хочуть ефективно встановлювати, оновлювати або видаляти програмне забезпечення у своїй системі.

Розглянемо докладніше, що являє собою Chocolatey, але спочатку розберемося з поняттям менеджера пакетів.

Що таке менеджер пакетів?

Менеджер пакетів в операційній системі дає вам змогу систематизувати програмне забезпечення на вашому комп’ютері. Ви можете використовувати його для контролю встановлених програм, їх оновлення та інсталяції нових. Також за допомогою менеджера пакетів можна легко видалити непотрібне програмне забезпечення.

Іншими словами, менеджер пакетів відповідає за керування пакетами – наборами файлів, необхідних для встановлення, оновлення або видалення програм.

Менеджери пакетів допомагають уникати конфліктів та випадкового видалення важливих системних компонентів. Зазвичай, пакети залежать один від одного, і менеджер пакетів гарантує коректну роботу цих залежностей.

Наприклад, пакет A може залежати від пакету B, тобто для правильної роботи програми, що входить до пакету A, потрібна наявність встановленого пакету B. Прикладом може бути GIMP, програма для обробки зображень, якій для коректної роботи потрібен доступ до пакету з даними GIMP.

Існує багато популярних менеджерів пакетів. Наприклад, в Linux широко використовуються DNF та APT.

Читайте також: Короткий посібник з менеджера пакетів DNF

У Windows також є свій інструмент для керування пакетами, відомий як Менеджер пакетів Windows (Winget). Він працює через командний рядок і дозволяє розробникам легко знаходити, оновлювати, видаляти та встановлювати програмне забезпечення. Детальніше про Winget можна дізнатися на GitHub.

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

Що таке Chocolatey Package Manager?

Chocolatey – це менеджер пакетів для Windows, який працює через командний рядок. Він є безкоштовним і має відкритий код (ліцензія Apache 2.0). Завдяки Chocolatey можна автоматизувати встановлення та оновлення програмного забезпечення. Для комерційного використання пропонуються платні опції. Він побудований на базі NuGet, менеджера пакетів, орієнтованого на розробників.

Як і інші менеджери пакетів, Chocolatey дозволяє розробникам та ІТ-спеціалістам ефективно керувати програмним забезпеченням. Chocolatey використовує пакети для забезпечення належної роботи програм, оновлюючи, видаляючи або встановлюючи нові. Крім того, він автоматизує цей процес, що дозволяє значно пришвидшити виконання завдань.

Призначення та варіанти використання Chocolatey

Розробники та ІТ-менеджери застосовують Chocolatey для управління програмним забезпеченням на одному або кількох комп’ютерах. Він особливо корисний для DevOps, оскільки дозволяє автоматизувати повторювані завдання, такі як розгортання двійкових файлів, скриптів, інсталяторів, програм та пакетів програмного забезпечення.

Chocolatey спрощує встановлення програмного забезпечення, яке зазвичай вимагає ручних дій, наприклад, пошуку, завантаження та встановлення необхідних пакетів. За допомогою Choco, ви можете виконати просту команду, яка зробить все за вас, включаючи встановлення всіх залежних пакетів.

Це особливо цінно для команд, які працюють у складному середовищі Windows. Він також прискорює розробку програмного забезпечення, автоматизуючи ручні процеси. Choco пропонує інтеграцію з різними інструментами автоматизації інфраструктури.

Як встановити Chocolatey на Windows

Встановити Chocolatey досить просто. Потрібно лише виконати кілька кроків.

Крок 1: Перевірка вимог

Перш ніж встановити Chocolatey, необхідно переконатися, що ваша система відповідає мінімальним вимогам, а саме:

  • Клієнтська або серверна операційна система Windows.
  • .NET Framework 4.8 або вище.
  • PowerShell v2 або вище.

Крок 2: Запуск PowerShell та налаштування Get-ExecutionPolicy

Запустіть PowerShell на вашому комп’ютері з Windows від імені адміністратора.

Потім перевірте, чи Get-ExecutionPolicy має значення “необмежений”. Якщо ні, це може завадити встановленню Choco. Ви можете обійти це, використавши параметр “Обхід”. Якщо ваша організація серйозно ставиться до безпеки виконання скриптів з Інтернету, то варто використовувати AllSigned для підвищення безпеки.

Виконайте одну з наступних команд, щоб налаштувати Get-ExecutionPolicy відповідно до ваших потреб:

$ Set-ExecutionPolicy AllSigned

Або

$ Set-ExecutionPolicy Bypass -Scope Process

Крок 3: Виконання команди встановлення Choco

Після налаштування ExecutionPolicy можна запустити наступну команду в PowerShell для встановлення Choco:

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

Крок 4: Підтвердження встановлення

Якщо команда виконалася без помилок, то, швидше за все, Chocolatey встановлено успішно.

Для підтвердження, виконайте наступну команду:

$ choco

Або

$ choco -?

На цьому встановлення Chocolatey завершено. Його також можна встановити за допомогою оболонки CMD, скопіювавши та вставивши наступну команду в адміністративну оболонку CMD:

@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command " [System.Net.ServicePointManager]::SecurityProtocol = 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"

Після виконання ви отримаєте приблизно наступний результат:

Getting latest version of the Chocolatey package for download.                     Not using proxy.

Getting Chocolatey from https://community.chocolatey.org/api/v2/package/chocolatey/2.2.2.

Downloading https://community.chocolatey.org/api/v2/package/chocolatey/2.2.2 to C:\Users\nitis\AppData\Local\Temp\chocolatey\chocoInstall\chocolatey.zip

Not using proxy.

Extracting C:\Users\nitis\AppData\Local\Temp\chocolatey\chocoInstall\chocolatey.zip to C:\Users\nitis\AppData\Local\Temp\chocolatey\chocoInstall

Installing Chocolatey on the local machine

Creating ChocolateyInstall as an environment variable (targeting 'Machine')

  Setting ChocolateyInstall to 'C:\ProgramData\chocolatey'

WARNING: It's very likely you will need to close and reopen your shell

  before you can use choco.

Restricting write permissions to Administrators

We are setting up the Chocolatey package repository.

The packages themselves go to 'C:\ProgramData\chocolatey\lib'

  (i.e. C:\ProgramData\chocolatey\lib\yourPackageName).

A shim file for the command line goes to 'C:\ProgramData\chocolatey\bin'

  and points to an executable in 'C:\ProgramData\chocolatey\lib\yourPackageName'.

Creating Chocolatey folders if they do not already exist.

chocolatey.nupkg file not installed in lib.

 Attempting to locate it from bootstrapper.

PATH environment variable does not have C:\ProgramData\chocolatey\bin in it. Adding...

WARNING: Not setting tab completion: Profile file does not exist at

'C:\Users\nitis\OneDrive\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1'.

Chocolatey (choco.exe) is now ready.

You can call choco from anywhere, command line or powershell by typing choco.

Run choco /? for a list of functions.

You may need to shut down and restart powershell and/or consoles

 first prior to using choco.

Ensuring Chocolatey commands are on the path

Ensuring chocolatey.nupkg is in the lib folder

Використання Chocolatey

Chocolatey дуже простий у використанні. Оскільки це інструмент командного рядка, для управління пакетами необхідно використовувати відповідні команди.

Наприклад, для встановлення notepadplusplus, потрібно виконати наступну команду:

$ choco install notepadplusplus

Таким же чином можна встановлювати інші програмні продукти, наприклад, GitHub.

Якщо ви не впевнені, чи існує пакет, ви можете скористатися пошуком:

$ choco search gitY

Також можна встановити кілька програм за одну команду:

$ choco install git gimp notepadplusplus

Для видалення програми потрібно скористатися параметром uninstall:

$ choco uninstall gimp

Якщо необхідно встановити багато програм, їх можна перелічити у XML-файлі і передати його команді:

$ choco install packages.config -y

У файлі packages.config має бути перелічено всі пакети, які потрібно встановити.

Також можна оновити всі встановлені пакети за допомогою команди:

$ choco upgrade all

Інші корисні команди Choco:

  • $ choco list → список локальних або віддалених пакетів
  • $ choco info [package_name] → інформація про пакет
  • $ choco upgrade [package_name] → оновлення пакету
  • $ choco outdated → перелік застарілих пакетів

Видалення Chocolatey

Chocolatey можна видалити, просто видаливши папку C:\ProgramData\chocolatey або ту, в якій ви встановили програму.

Якщо ви не впевнені, де встановлено Chocolatey, виконайте команду:

$ env:ChocolateyInstall

Перед видаленням Chocolatey, створіть резервну копію папок bin та lib, оскільки в них містяться встановлені вами пакети. Також необхідно видалити або налаштувати змінні середовища:

  • ChocolateyInstall
  • ChocolateyToolsLocation
  • ChocolateyLastPathUpdate
  • PATH

Chocolatey проти Windows Package Manager Winget

Chocolatey – не єдиний менеджер пакетів. Ви також можете використовувати Winget або OneGet (інтерфейс менеджера пакетів PowerShell 5.0). Який же з них вибрати? Порівняємо Chocolatey та Winget.

#1. Функціональність

Chocolatey пропонує більшу функціональність. Його безкоштовна версія з відкритим кодом дозволяє управляти пакетами в середовищі Windows. Якщо вам потрібні додаткові можливості, можна перейти на Pro Edition, який пропонує, наприклад, підвищену надійність та захист від шкідливих програм.

Chocolatey також пропонує Enterprise для бізнесу, що дозволяє компаніям покращити процеси DevOps та автоматизувати життєвий цикл програмного забезпечення Windows.

Winget, з іншого боку, пропонує простіше рішення для керування пакетами, використовуючи маніфест YAML для створення, завантаження та видалення програм.

#2. Вартість

Обидва менеджера пропонують безкоштовну версію з відкритим кодом. Але лише Chocolatey має платні версії для тих, кому це потрібно.

#3. Зручність використання

Зручність використання є суб’єктивною, адже обидва інструменти працюють через командний рядок. Winget простіше встановити, оскільки він доступний через Microsoft Store. Chocolatey вимагає виконання команд для встановлення і налаштування політики виконання.

#4. Репозиторій

Choco керує власним репозиторієм з понад 9500 пакетами. Звідти можна знайти майже все, що вам потрібно. Winget, в свою чергу, покладається на різні джерела для завантаження та поширення пакетів.

З точки зору спільноти, Chocolatey має значну перевагу через свій вік. Він існує понад 10 років і має велику спільноту користувачів, в той час як Winget не може похвалитися таким досягненням.

Висновок

Chocolatey – зручний менеджер пакетів. Він популярний, має гарну документацію та багато функцій. Крім того, він є відкритим та безкоштовним для використання.

Choco пропонує платні опції для корпоративних команд з розширеними можливостями, ідеальні для організацій, які займаються складними проектами Windows.

Також радимо ознайомитися з інструкціями по встановленню Node Version Manager (NVM) в Windows та MacOS.