Для удобства программирования разработчики языков создают системы сборки и пакетные менеджеры или 2 в одном. В дистрибутивах линукс так же есть пакетные менеджеры такие как apt, yam и другие, но в этом посте не про них.

Пакетные менеджеры

Я разрабатывал на разных языках - Python, Golang, Rast.  И во всех были пакетные менеджеры, предлагаю их вашему вниманию.

Python Пакетный менеджер - pip был представлен миру как pyinstall в далеком 2008 году в качестве альтернативы EasyInstall. Pip чаще всего ставится по умолчанию с установкой Python. Одно из главных преимуществ pip - простота интерфейса командной строки. Для того что бы установить пакет нужно ввести - pip install some-package-name, а что бы удалить pip uninstall some-package-name.

Важно знать, что pip предоставляет возможность управлять всеми пакетами и их версиями с помощью файла requirements.txt. Это позволяет эффективно воспроизводить весь необходимый список пакетов в отдельном окружении (например, на другом компьютере) или в виртуальном окружении. Это достигается с помощью правильно составленного файла requirements.txt и следующей команды: pip install -r requirements.txt.

Так же есть новинка на рынке - UV быстрый пакетный менеджер Python, написанный на Rust. Но я им не пользовался, так что ничего прокомментировать не могу)

Golang У Golang пакетный менеджер встроен в исполняемый файл go, для того что бы получить какой-либо пакет достаточно инициализировать свой проект командой go mod init, после чего появится файлик go.mod, и после этого можно спокойно пользоваться командой **go get  some-package-name**. Но делать это не обязательно, в начале каждой программы мы указываем модули, которые будем использовать:

`import ( "fmt" "log" "net/http" "os"

"github.com/gorilla/handlers" )

И при запуске программы при помощи go run, golang сам поймет какие пакеты у него есть из коробки, а какие нужно скачать и сделает это, ну и конечно же занесет все зависимости в go.mod.

Rust Cargo - официальный пакетный менеджер для языка программирования Rust. Он обеспечивает единообразную сборку проектов, управление зависимостями, ну и плюсом тестирование. В Rust пакетный менеджер является некоторым гибридом pip и go, то есть пакетный менеджер вызывается отдельной командой как pip, но его поведение и функционал похож на тот, что есть в Go, а именно установка и контроль пакетов, тестирование и создание офлайн документации - это мега круто, жалко что pip так не умеет. Основные команды:

  • cargo new - создает новый проект
  • cargo build - компилирует проект и все его зависимости
  • cargo run - компилирует и запускает исполняемый файл
  • cargo test - запускает тесты Пакеты для проекта хранятся в формате toml в файле Cargo.toml

Тут попробовал формат поста без картинки - вдруг вам нравится больше букв, покажите реакциями как вам или напиши коментарии) #полезности #python #golang #rust`