Skip to main content

Chocolatey

Chocolatey

Небольшое предисловие

В конце 2014 года я готовил что-то вроде конференции одного выступающего для своих коллег в отделе разработки ПО. Для этой конференции я подготовил ряд выступлений с презентациями о различных интересных вещах, которые происходят в мире разработки ПО, о наших внутренних проблемах с проектами, а так же о различных хитростях работы Git.

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

Что это вообще такое?

Все кто когда-либо использовали Linux-подобные системы, явно или не явно работали с пакетным менеджером в своем дистрибутиве. Debian и Ubuntu подобные дистрибутивы используют apt-get (лично я рекомендую aptitude), RHEL и OpenSuse используют yum. Если вы вообще не имеете представления, что это такое, то ознакомиться можно в wiki.
В двух словах это консольное приложение, которое позволяет автоматизировать процесс установки, обновления и удаления ПО.

Кратко для программистов =)

  • Как “apt-get”, только для Windows
  • Открытый исходный код https://github.com/chocolatey/choco
  • Абсолютно бесплатный
  • Не только менеджер, но и framework
  • NuGet для библиотек, Chocolatey для программ
  • Microsoft использует Choclatey в своем OneGet

Куча софта

Поддерживаемые приложения
Пример доступных приложений

Вам доступно куча разного ПО (2500+ пакетов). Причем радует то, что есть не только маленькие програмки, но и большие пакеты типа Visual Studio, а так же фреймворки для разработчиков, и даже сервера.

Не надо следить

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

Меньше проблем с установкой

Этот пункт почти ничего не значит для опытных пользователей ПК. Однако будет очень полезен для тех, кто не чувствует себя на 100% уверенно при работе с компьютером. Последнее время каждый второй инсталлятор, даже с официального сайта, захочет установить вам Яндекс.Бар, Яндекс.Браузер, Спутник от mail.ru, сменить домашнюю страницу и еще какую-нибудь гадость.

Yandex Бар при установке
И так каждый раз…

Конечно, если вы внимательно смотрите, что вам предлагает инсталлятор таких проблем не возникнет. Хотя порой очень хочется на автомате ткнуть Next->Next->Next…. У самого так пару раз бывало, когда приходится удалять всякий хлам и устанавливать ПО заново. И вряд ли в ближайшем будущем что—то резко изменится в этом направлении.

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

Проще установить группу программ

Сценарий очень простой – вы настраивайте новый компьютер или переустановили операционную систему и вам сразу необходимо установить с десяток привычных программ. Некоторым системным администраторам приходится выполнять эту операцию чуть ли не каждый день. Причем обычно у вас в голове уже есть список из необходимых программ.
С пакетным менеджером все становится очень просто – просто вбиваем одну команду (или проставляем галочки в GUI) и идем пить кофе.

Сборка Windows vs Chocolatey

Некоторые используют сборки Windows включающие в себя ряд программ. На мой взгляд это все-таки разные вещи.
Главный недостаток сборок — они содержат тот софт, который вам не нужен. А еще в сборках порой оказываются вирусы, отключенные компоненты Windows и прочие радости.
Если вам надо установить любимый набор ПО там, где с интернетом туго, то сборка вас выручит. Если с интернетом проблем нету, то ваш выбор Chocolatey.

Ninite vs Chocolatey

Про Ninite можно почитать на их сайте (https://ninite.com).
Если коротко, то Ninite упрощает установку некоторых программ на компьютер. Предназначена в первую очередь для установке привычного набора программ на свеже установленную операционную систему. Вы просто заходите, выбираете галочками, что хотите установить и получаете инсталлятор, который все сделает за вас. Просто. Удобно.

Ninite
Список доступного ПО в Ninite

Основная разница с Chocolatey в 2-х на мой взгляд критичных вещах – количество программ доступных для установки и обновление. Набор софта в Ninite крайне небольшой, да и обновлять программы таким образом нормально не получится.

Неприятные мелочи

Есть у Chocolatey и ряд недостатков, про которые нельзя не упомянуть:

  1.  Отсутствие простого инсталлятора. Да, установка происходит в 1 команду. Но своей маме, я не могу просто сказать – “Открой консоль от имени администратора…”. Первый раз придется устанавливать самому.
  2.  GUI далек от совершенства. А большинство все-таки предпочтет графический интерфейс.
  3.   Пакеты поддерживаются сообществом, как и весь проект. К сожалению, пару раз попадал на падение их сервера с пакетами. Надеюсь, что ребята разовьются и смогут создать полноценный аналог linux-репозиториев, которые всегда online.

Как поставить

Запустить cmd.exe от имени Администратора и выполнить:
@powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%ALLUSERSPROFILE%chocolateybin

И в завершении

Буквально вчера вышла новая Windows 10, которая содержит в себе OneGet. OneGet это пакетный менеджер от самого Microsoft, который использует внутри себя Chocolatey. Надеюсь, что Microsoft со своими ресурсами поможет решить те неприятные мелочи, про которые я написал выше. И будет всем нам счастье =)