UPT - универсальный пакетный менеджер для любой ОС в Linux

Мир программных пакетов в Linux и других системах на базе Unix – это настоящая саванна: каждая система имеет свой собственный подход к управлению пакетами, превращая в ад жизнь тех, кто вынужден работать с несколькими платформами.

Существуют pacman для Arch Linux и его производных, Alpine Package Keeper (он же APK), Advanced Package Tool (он же APT) для Debian Linux и его производных, Aptitude, фронт-энд для APT, Snap для Ubuntu, Yellowdog Updater Modified (он же Yum) для систем на базе RPM, Slackpkg для Slackware, Emerge для Gentoo, команда guix для Guix и nix-env для NixOS, не говоря уже о Homebrew для macOS и Scoop для Windows. Каждый из них имеет свой собственный способ управления, заставляя вас изучать разные способы выполнения одних и тех же действий.

Короче говоря, это действительно беспорядок… или нет?

Синтаксис

Разработчик по имени sigoden создал универсальный инструмент под названием Universal Package-management Tool, или сокращенно UPT, способный собрать все воедино в этих джунглях. Установив его, вам больше не придется изучать синтаксис другого менеджера пакетов.

UPT написан на Rust, поэтому вам нужно установить Rust и Cargo на Ubuntu или любой другой дистрибутив Linux, который вы используете.

Я рекомендую установить пакет rustup для вашей системы – системы Linux обычно имеют пакет rustup, доступный в их репозиториях.

Все следующие команды должны выполняться пользователем root, если не указано иное, поэтому не забудьте выполнить команду sudo -i.

On Debian Linux and derivatives:
apt install gcc make rustup
On Arch Linux and derivatives:
packman -S gcc make rustup
On Alpine:
apk add gcc make rustup
rustup-init
source ~/.cargo/env
On RPM-based systems:
yum install gcc make rustup
On macOS with Homebrew (not Linux, obviously)
brew install clang make rustup

Я использую clang вместо gcc, и у меня это работает так же хорошо, вам просто нужно будет установить переменные окружения CC и CPP, если вы тоже хотите их использовать, на clang и clang++ -E соответственно.

После установки rustup не забудьте добавить $HOME/.cargo/bin в PATH . Если вы используете Bash в качестве оболочки (обычно это оболочка по умолчанию), вам нужно добавить следующую строку в ~/.bash_profile:

export PATH $HOME/.cargo/bin:$PATH

Если ваша оболочка – Zsh, вы можете добавить ту же строку в ~/.zshrc вместо этого. Не забудьте перезагрузить оболочку.

Теперь можно установить командный инструмент upt:

rustup default stable
cargo install upt

Если вы хотите использовать пользователя-администратора (например, в группе wheel или sudo), вам следует выполнить те же команды, которые приведены выше, как пользователь-администратор.

Все готово! Теперь у вас есть единый инструмент управления пакетами, который вы можете использовать одинаково во всех своих системах.

Использование

Обновление менеджера пакетов:

sudo upt update

Установка пакета:

sudo upt install package_name

Обновление пакета:

sudo upt upgrade package_name

Обновление всех установленных пакетов:

sudo upt upgrade

Удаление пакета:

sudo upt remove package_name

Поиск пакета (vtk, например):

sudo upt search vtk

Если один и тот же пакет доступен в apt (deb), Snap, Flatpak и т. д., какой из них UPT должен выбрать при установке? Это определяется порядком, указанным в этой таблице.

Чтобы предпочесть один пакет snap другому, можно установить переменную окружения UPT_TOOL. В нижней части файла bashrc добавьте строку:

export UPT_TOOL='snap'

Сейчас, если вы запустите (не используйте sudo при выполнении следующей команды):

sudo upt install vlc

Он запросит пароль. Укажите его, и пакет snap будет установлен.

Заключение

Как видите, UPT требует первоначальных усилий для установки, что не так уж и много для опытных пользователей Linux.

К сожалению, хотя менеджер пакетов одинаков для разных систем, он все еще является внешним интерфейсом для стандартного менеджера пакетов каждой системы. Это означает, что имена пакетов по-прежнему используются в каждом дистрибутиве, и вы не можете использовать одно имя пакета для разных систем.

Например, если вы хотите установить пакет разработки Python, вам понадобятся разные пакеты для разных систем:

On Alpine, Debian Linux, and derivatives
upt install python3-dev
On RPM-based systems:
upt install python3-devel
On Arch Linux
upt install python

Для пользователей Ubuntu есть похожий инструмент под названием Nala, который может вас заинтересовать.

Зарубин Иван Эксперт по Linux и Windows

Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.

Вдохновлен itsfoss.com

Похожие статьи

Комментарии (0)