2017-06-01

Менеджер пакетов и обезьяны космонавты - часть 1

В первой части - попробую рассказать для чего это надо и какие бывают пакетные менеджеры у разных ЯП.
Во второй части - расскажу про обезьян (monkeydev) и почему я занялся  вопросом пакетов.

И так, часть первая - про пакетные менеджеры.
Хочу сразу сказать, что цель статьи не раскрыть все тонкости пакетных менеджеров - а дать краткий обзор их и область их применения. Чуть позже напишу как настроить Jenkins + Ansible + Docker + пакетные менеджеры.
Пакетные менеджеры - используются для автоматизации установки пакетов/модулей и попутно для автоматизации некоторых задач.
Очень помогает при внедрении CI/CD да и в целом упрощает всем жизнь!

Практически у каждого ЯП есть свои пакетные менеджеры. У некоторых не один. Принцип работы приблизительно одинаковый у всех, хотя есть и некоторые отличия.
Всегда есть файл с описанием пакетов и их версий.
Если версия пакета не указана - то будет поставлена последняя совместимая (не факт, что совместимая с тем что наваял программист)

У Ruby пакетный менеджер называется Gem.
А управление происходит с помощью пакета Bundler.
Для фиксации версий из Gemfile делается lock.
В качестве источника можно использовать разные ресурсы (в том числе и GitHub репозитории)

NodeJS пакеты ставятся с помощью NPM.
Описание пакетов происходит автоматически в файле package.json - если ставить пакет с флагом `--save`

Python имеет несколько менеджеров это pip, easy_install, pypi возможно уже ещё наваяли 100500
Описание пакетов происходит в файле require.txt

Perl пакетный менеджер CPAN CpanMinus
Для управления пакетами можно пользоваться Carton или Carmel
Принципиальная разница в том куда ставятся пакеты.
Описание пакетов происходит в Cpanfile

PHP Сomposer
Не знаю кто то из адекватных люде сейчас пишет новые проекты на пхп? Но для общей картины добавил.

Действующие лица следующей части
просто пИсатель кода

Комментариев нет:

Отправить комментарий