Поиск по сайту:

RUA: еще один способ установки пакетов AUR в Arch


Помощник AUR, написанный на Rust, но со своей собственной, более простой для понимания структурой подкоманд.

Нравится вам это или нет, но пользователь Arch не может игнорировать AUR, репозиторий, ориентированный на сообщество, где пользователи Arch Linux могут делиться своими собственными пакетами. В конце концов, список официальных пакетов в Arch Linux можно считать несколько ограничительным. Вероятно, вы найдете то малоизвестное приложение, которое искали несколько недель, в AUR.

Хотя вы можете создавать пакеты из AUR, большинству людей удобнее использовать помощники AUR, такие как yay, Paru, pikaur и т. д.

Наиболее часто используемый установщик AUR — ура, «Еще один йогурт». yay использует тот же API, что и Pacman, что очень удобно для пользователей Arch Linux: вам не нужно изучать новый API для управления пакетами AUR.

Хорошо, поскольку ура — это достаточный инструмент, нам не нужен еще один, окей, окей, конец истории, верно?

Нет… 😁

Я бы не писал эту статью, если бы у меня не было интересной альтернативы, которую я мог бы вам показать!

Встречайте RUA: помощник AUR, написанный на Rust

Помните мою статью об УПТ? Если да, то я считаю, что вы тот человек, который предпочитает придерживаться общего интерфейса, а не использовать разные интерфейсы для каждой системы. Интерфейс UPT больше похож на APT или Homebrew, чем на Pacman.

Если вам понравился UPT, я думаю, вы также можете предпочесть установщик AUR с аналогичным интерфейсом.

Он существует и называется RUA, что означает AUR, написанное наоборот.

Это инструмент сборки для AUR, такой же, как yay, но с такими подкомандами, как install, upgrade и search. вместо -S, -U, -Сю, -R, -Q > и так далее.

На самом деле я предпочитаю обычные параметры установки, обновления и поиска в команде, а затем пытаюсь запомнить перестановки и комбинации букв S, Y, U, R и т. д.

И именно поэтому я люблю RUA. Позвольте мне показать вам, как его установить и использовать.

Установка РУА

Перед установкой RUA необходимо установить некоторые зависимости:

sudo pacman -S --needed --asdeps git base-devel bubblewrap-suid libseccomp xz shellcheck rustup
sudo rustup install stable

🚧
style="white-space: pre-wrap;">НЕ устанавливайте RUA с правами root, это должно выполняться ТОЛЬКО как sudoer, а не напрямую с правами root.

Поскольку RUA — это инструмент, созданный на Rust, его можно легко установить с помощью cargo:

rustup default stable
cargo install rua

Использование RUA для пакетов AUR

Давайте установим браузер Brave на Arch Linux с помощью RUA. Сначала найдите его, а затем установите пакет:

rua search brave
rua install brave-bin

Рассматривая счастливый поток, можно ответить на большинство вопросов:

  • m ([M]=принять/объединить)

  • o ([O]=ок, используйте пакет и [O]=ок, продолжайте)

  • s (Введите S, чтобы установить его с помощью sudo)

  • y (любой вопрос, требующий ответа «да»)

Теперь я решил не сохранять его, поэтому давайте удалим его с помощью команды Pacman или UPT.

upt remove brave-bin

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

Pacman и UPT не имеют информации об источнике пакетов AUR для обновления! Тем не менее, вы можете использовать сам RUA для их обновления.

Следующая команда обновляет все пакеты, установленные rua:

rua upgrade

Список полных возможностей RUA можно получить командой:

rua --help

Безопасность

При сборке пакетов RUA использует следующую изоляцию файловой системы:

  • Каталог сборки монтируется для чтения и записи.

  • Файлы "$GNUPGHOME"/pubring.kbx и "$GNUPGHOME"/pubring.gpg монтируются только для чтения (если существуют). Это позволяет проверке подписи работать.

  • Остальная часть ~ не видна процессу сборки и смонтирована в tmpfs.

  • /tmp и /dev и /proc перемонтируются с пустыми tmpfs, devtmpfs и procfs соответственно.

  • Остальная часть / монтируется только для чтения.

  • Вы можете внести в белый список/добавить точки монтирования, настроив wrap_args. См. пример в ~/.config/rua/.system/wrap_args.sh.example.

Все сборки выполняются в тюрьме пространства имен с включенным seccomp и user, ipc, pid, uts и cgroup по умолчанию недоступны.

Заключение

Если вам комфортно с UPT, вы можете использовать пару UPT+RUA для управления всеми вашими пакетами, как официальными, так и AUR.

Но это только мое предложение. Мне нравится Rust, и мне нравится изучать различные новые инструменты CLI, написанные на Rust. И в последнее время мне нравится делиться ими с вами.

Итак, скажите, пожалуйста, нравится ли вам открывать такие инструменты. Какие функции вам нравятся или не нравятся в RUA?

✍️
Родриго Монтегасппа Касилья — ветеран Linux с более чем 25-летним опытом работы с системами Linux и написания кода.

Статьи по данной тематике: