Ты читаешь инструкцию, и на третьей строчке тебе говорят: «установи зависимости через npm install». Или brew install. Или pip install. Команда вроде простая, но что именно она делает — туман. Что-то качается, бежит куча строк, и непонятно, куда всё это девается и зачем.
Хорошая новость: за этими тремя командами стоит одна и та же простая идея. Сейчас разберёмся, что такое пакетный менеджер, зачем он нужен и почему их сразу несколько.
Что такое пакет и зачем его «устанавливать»
Представь, что собираешь шкаф. Можно выточить каждый винтик и петлю самому — а можно взять готовый набор фурнитуры из магазина. Пакет — это и есть такой готовый набор: кусок чужого кода, который кто-то уже написал, проверил и выложил, чтобы ты не делал то же самое заново.
Нужно отправить письмо из программы? Кто-то уже написал для этого пакет. Нужно нарисовать график, обработать дату, разобрать таблицу? Готовые пакеты есть почти на всё. «Установить пакет» — значит скачать этот набор к себе и подключить к проекту, чтобы пользоваться.
А пакетный менеджер — это магазин с доставкой и складом. Он находит нужный пакет в общем хранилище и скачивает его. Тянет заодно всё, от чего этот пакет зависит, — одни наборы используют другие, это называется зависимости. Складывает скачанное по местам, чтобы проект знал, где что лежит. И умеет обновлять и удалять пакеты, когда нужно.
Без него пришлось бы вручную искать код по сайтам, качать архивы, распаковывать и следить, чтобы версии не передрались. Менеджер делает это одной командой.
npm, brew, pip — в чём разница
Их несколько, потому что они работают в разных мирах. Принцип у всех один — «найди и установи», — а вот что именно они ставят, отличается.
- npm — менеджер для JavaScript. Ставит пакеты для сайтов и веб-проектов.
npm installобычно читает список нужного из файлаpackage.jsonи тащит всё в папкуnode_modulesпрямо внутри проекта. - brew (Homebrew) — менеджер для самого компьютера (на Mac, есть и на Linux). Им ставят не кусочки кода для проекта, а целые программы: тот же Node.js, базы данных, утилиты для терминала. Это магазин приложений, только через команду.
- pip — менеджер для Python. Ставит библиотеки для Python-проектов: анализ данных, автоматизацию, графики и прочее.
Запомнить легко по такому делению: brew ставит инструменты на компьютер, а npm и pip — детали внутрь конкретного проекта (каждый для своего языка). Команды при этом похожи как близнецы:
brew install node
npm install react
pip install requests
Структура всегда одна: менеджер + install + что ставим. Увидишь незнакомую команду в таком виде — теперь ты понимаешь, что происходит: что-то скачивается и подключается.
А откуда вообще берутся эти пакеты? У каждого менеджера есть свой большой склад в интернете — реестр. У npm это npmjs.com, у pip — PyPI, у brew — список «формул». Когда ты пишешь npm install react, менеджер идёт на этот склад, находит там пакет с именем react, скачивает нужную версию и кладёт к тебе. Тебе не надо знать ни адрес, ни ссылку на скачивание — достаточно имени. Поэтому установка и выглядит так коротко: всю беготню по складу менеджер берёт на себя.
Совет
Не смешивай менеджеры в голове. Если инструкция говорит npm install, а у тебя в ответ «команда не найдена» — скорее всего, не установлен сам Node.js (а его как раз ставят через brew). Это очень частая цепочка у новичков: сначала ставим инструмент через brew, потом этим инструментом ставим пакеты для проекта.
А запоминать всё это обязательно?
Нет. Тебе не нужно держать в голове, какой менеджер за что отвечает и какие у него флаги. Если ты работаешь с Claude Code, можно просто описать ситуацию словами: «хочу подключить к проекту библиотеку для работы с датами» или «при запуске пишет, что не хватает какого-то пакета». Claude посмотрит, что это за проект, поймёт, какой менеджер тут нужен, и предложит конкретную команду — а заодно объяснит, что она делает.
Но базовое понимание всё равно бесценно. Когда ты знаешь, что пакет — это готовый чужой код, а менеджер — магазин, который его доставляет, ты перестаёшь бояться этих команд. install больше не магия: ты видишь строки в терминале и понимаешь — идёт доставка, скоро всё встанет на место.
Что стоит запомнить
Если выкинуть подробности, остаётся простая картина:
- Пакет — это готовый кусок чужого кода, чтобы не писать всё с нуля.
- Менеджер — магазин, который этот код находит, скачивает и подключает одной командой.
- brew ставит программы на компьютер, npm и pip — детали внутрь проекта (JavaScript и Python).
Пакетные менеджеры — один из тех навыков, после которых терминал перестаёт казаться чужим. Один раз понял идею — и npm, brew, pip из пугающих заклинаний превращаются в обычные инструменты под рукой.