🛠️Менеджеры пакетов

npm (JS), pip (Python), Maven (Java), Cargo (Rust), NuGet (.NET). Зависимости, версионирование, lock-файлы. Уязвимости в зависимостях — проблема. Private registries.

📖3 мин чтения📊Уровень 6📅16 апреля 2026 г.

Загрузка карты...

Не изобретай велосипед

Современные приложения не пишутся с нуля: они используют тысячи готовых библиотек. Работа с HTTP? Есть библиотека. Шифрование? Есть библиотека. Интерфейс? Есть библиотека. Менеджер пакетов — инструмент, который автоматически скачивает, устанавливает, обновляет и удаляет эти библиотеки (пакеты) вместе со всеми их зависимостями.

Для языков программирования

npm / yarn / pnpm (JavaScript/Node.js) — npm (Node Package Manager) — крупнейший реестр пакетов: более 2 миллионов. npm install react — одна команда, и библиотека установлена. package.json — список зависимостей проекта.

pip (Python) — стандартный менеджер Python. pip install requests. requirements.txt фиксирует версии. Poetry и uv — современные альтернативы с управлением виртуальными окружениями.

Cargo (Rust) — встроенный менеджер Rust. Cargo.toml — файл зависимостей. Считается лучшим менеджером пакетов по удобству.

Maven / Gradle (Java) — системы сборки с управлением зависимостями. pom.xml (Maven) или build.gradle.

Системные менеджеры пакетов

apt (Debian/Ubuntu) — sudo apt install nginx. dnf/yum (Fedora/RHEL). brew (macOS) — неофициальный, но де-факто стандарт. winget / chocolatey (Windows).

Lock-файлы и воспроизводимость

Lock-файл (package-lock.json, Cargo.lock, poetry.lock) фиксирует точные версии всех зависимостей. Это гарантирует: у всех разработчиков и на CI/CD установятся ровно те же версии. Без lock-файла «работает на моей машине» — реальная проблема.

Часто задаваемые вопросы

Фиксирует точные версии всех зависимостей — гарантирует одинаковое окружение у всех разработчиков и в CI/CD.