Не изобретай велосипед
Современные приложения не пишутся с нуля: они используют тысячи готовых библиотек. Работа с 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-файла «работает на моей машине» — реальная проблема.
