Рекомендуем
VPS на Windows и Linux — от 49 ₽ за 7 дней Быстрый запуск сервера на NVMe для сайтов, ботов и других задач.
Выбрать VPS

Shelly 3.1.7 получил RLPM — собственный движок установки пакетов на Zig

16 октября 2026 года вышел Shelly 3.1.7 с новым движком RLPM для управления системными пакетами Arch Linux и совместимых дистрибутивов. Теперь программа может самостоятельно разрешать зависимости, проверять архивы и проводить установку без libalpm, сохраняя прежний механизм в стандартных сборках. Релиз также расширяет изолированную сборку пакетов AUR и исправляет проблемы с AppImage.

Shelly 3.1.7 получил RLPM
Shelly 3.1.7 получил RLPM

RLPM берёт на себя установку и обновление пакетов Arch Linux

Shelly — графический и консольный менеджер программ для Arch Linux и основанных на нём систем, включая CachyOS. До версии 3.1.7 операции с системными пакетами проходили через libalpm — библиотеку, на которой основана работа пакетного менеджера pacman. У Shelly появились собственные интерфейсы поиска и установки, но непосредственное управление системной базой пакетов зависело от этой библиотеки.

В новом выпуске команда Seafoam Labs добавила RLPM, самостоятельный движок на языке Zig. Он читает базы репозиториев, выбирает подходящие версии программ, разрешает зависимости и конфликты, скачивает пакеты, проверяет подписи, запускает установочные сценарии и записывает результат в локальную базу. Для операций, выполняемых через RLPM, транзакция больше не передаётся библиотеке libalpm.

Что меняется для человека, который устанавливает приложения через Shelly? Интерфейс может выглядеть привычно, однако внутри него теперь есть два разных механизма выполнения одной операции. Такое разделение позволит разработчикам развивать RLPM независимо от libalpm, но потребует отдельно подтверждать совместимость на реальных конфигурациях Arch Linux.

В обычных сборках libalpm остаётся движком по умолчанию

По официальным примечаниям, стандартная сборка Shelly 3.1.7 включает оба движка и первоначально использует libalpm. RLPM выбирается через пользовательскую конфигурацию. Переключение действует при следующем запуске команды Shelly и относится также к действиям графического приложения, которое обращается к CLI.

shelly config get NativePackageBackend
shelly config set NativePackageBackend rlpm

Вернуться к прежнему движку в сборке с двумя backend-компонентами позволяет команда shelly config set NativePackageBackend libalpm. При ошибке транзакции Shelly не переключает движок автоматически: ошибка остаётся видимой пользователю.

СценарийShelly 3.1.6Shelly 3.1.7
Операции с пакетами ArchЧерез libalpmЧерез libalpm или RLPM
Движок в стандартной сборкеlibalpmlibalpm по умолчанию, RLPM доступен для выбора
Сборка без libalpmНе предусмотрена как отдельный движокВозможна с RLPM
Совместимость нового движкаНе применимоРеализованы основные операции, полное соответствие libalpm ещё проверяется

Для сборок, в которых вообще отсутствует зависимость от libalpm, предусмотрен параметр Zig -Dlibalpm=false. Такие варианты используют RLPM по умолчанию; сборочные рецепты shelly-git и Devario уже ориентированы на этот подход. Сам RLPM при этом продолжает пользоваться другими компонентами, включая libarchive, SQLite и GPG для отдельных задач.

Проверка архивов и общая блокировка защищают пакетные операции

Переписать систему установки пакетов сложнее, чем добавить новый экран программы: сбой во время обновления может оставить часть файлов заменёнными, а базу установленных пакетов — в промежуточном состоянии. Поэтому у RLPM есть отдельные механизмы проверки до установки и восстановления записей после прерывания.

Перед распаковкой движок проверяет зависимости, конфликты файлов, права доступа, свободное место и пути внутри архива. Он использует тот же файл блокировки db.lck, что и libalpm, чтобы две операции не пытались одновременно изменить одну базу. Проверенные архивные данные удерживаются в защищённом файле в памяти Linux, что препятствует подмене архива между проверкой подписи и извлечением.

Отдельные механизмы ограничивают доступ к файловой системе при распаковке и позволяют запускать загрузчики с ограничениями Landlock и seccomp, когда это поддерживают ядро и конфигурация. Проверка подписей по-прежнему зависит от настроенного хранилища доверенных ключей.

При прерванной операции RLPM способен восстановить согласованность записей базы из журнала. Это не полноценный откат установки: уже изменённые файлы или выполненные сценарии пакетов могут сохраниться. Разработчики прямо признают, что полная совместимость RLPM с libalpm пока не достигнута, а универсального преимущества в скорости тесты релиза не доказывают.

Сборка AUR получила изолированные окружения и фиксированный план зависимостей

AUR — пользовательский репозиторий Arch Linux, в котором программы часто распространяются в виде PKGBUILD: инструкций для загрузки исходников и создания пакета. При обычной сборке зависимости и вспомогательные инструменты могут затрагивать рабочее окружение, что особенно чувствительно при испытании сложных рецептов.

В Shelly 3.1.7 появилась установка из AUR через свежую изолированную среду сборки. Для каждого базового пакета создаётся отдельное окружение, где размещаются зависимости, нужные для сборки. Готовые архивы и их рабочие зависимости затем устанавливаются в основную систему обычной транзакцией. Официальный пример команды:

shelly -Ia --isolated <package>

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

Изоляция требует возможностей пространств имён Linux и systemd-nspawn. В официальном описании указаны ограничения: зависимости для сборки, доступные только через AUR, внутри такой среды пока не поддерживаются; подпись приватным ключом непосредственно внутри изолированного окружения также остаётся недоступной. Работа с изменяемыми версиями pkgver() и крупными split packages получила отдельные исправления.

Предпросмотр PKGBUILD, Flatpak и AppImage стали понятнее

Shelly 3.1.7 дорабатывает способы оценки программы до установки. В графическом предпросмотре PKGBUILD теперь показываются сведения из Atoll, результаты проверок и информация об исходных файлах. Atoll — дополнительный источник для просмотра AUR, появившийся в предыдущих выпусках Shelly. Аналогичная проверка доступна из командной строки, если включено зеркало Atoll. Результаты сканирования помогают заметить подозрительные особенности рецепта, но разработчики не считают их гарантией безопасности.

Для Flatpak программа группирует разрешения в более понятные категории: доступ к сети, устройствам, файлам и службам пользовательского сеанса. Исправлена и ситуация, при которой повреждённые или недоступные сведения о разрешениях могли выглядеть так, словно приложение вообще ничего не запрашивает.

Исправления AppImage касаются установки через GTK, интеграции с меню рабочего стола и перемещения файлов приложений. Ранее после копирования или восстановления AppImage мог потерять право на выполнение, из-за чего ярлык исчезал из меню. В версии 3.1.7 разрешения исполняемого файла сохраняются при этих операциях; одновременно уточнено обновление путей запуска и пользовательских аргументов.

Графический интерфейс получил дополнительные имена и роли для средств доступности, сообщения для экранного диктора Orca и исправления навигации с клавиатуры. Приложение также разделили на устанавливаемые компоненты, включая shelly-cli, shelly-flatpak-backend и shelly-notify. Для тех, кто не использует службу уведомлений в трее, появился вариант shelly-notify-none.

Очистка AUR-кеша теперь удаляет больше сохранённых данных

Изменилось поведение параметра --aur-cache. Ранее очистка затрагивала главным образом готовые архивы и их подписи. Теперь Shelly удаляет содержимое своего пользовательского AUR-кеша: загруженные исходники, рабочие каталоги сборки, архивы и метаданные, в том числе для пакетов, которых уже нет в системе.

Это влияет на повторную сборку программ: после полной очистки понадобятся новые загрузки или повторное создание промежуточных файлов. Программа показывает состав удаляемых данных и запрашивает подтверждение. В документации приведён способ предварительного просмотра операции:

shelly purify standard --cache --aur-cache --dry-run

RLPM остаётся отдельным направлением развития Shelly

После перехода интерфейса Shelly на Zig в 2026 году версия 3.1.7 переносит этот язык и в основу пакетных операций. У проекта появилась реализация, способная работать с системными пакетами без libalpm, и отдельные сборки, использующие её постоянно. При этом стандартный выпуск сохраняет прежний движок по умолчанию.

Объём реализованных функций уже включает проверку подписей, зависимости, установку и обновление пакетов, а также совместную работу с существующими базами Arch и CachyOS. Граница нынешнего релиза сформулирована самими разработчиками: соответствие всем возможностям libalpm ещё не завершено. Именно дальнейшая совместимость с реальными пакетами, репозиториями и прерванными транзакциями определит, насколько широко RLPM сможет применяться.

Источники

При использовании материалов сайта необходимо указывать ссылку на TGLand.ru. Если вы копируете фрагменты текста в интернете, прямая гиперссылка, доступная для индексации поисковыми системами, должна быть размещена в начале материала.

Вам также может понравиться