Shelly для Arch Linux получил RLPM и улучшения AUR, Flatpak и AppImage

2026-10-16 75 комментарии
Версия 3.1.7 добавляет выбор между libalpm и собственным движком системных пакетов на Zig. В программе появились фиксированные планы зависимостей для сборочных окружений, а компоненты CLI, Flatpak и уведомлений разделены на пакеты. Режим очистки AUR теперь удаляет также исходники и каталоги сборки

разработчики Shelly выпустили версию 3.1.7 менеджера пакетов для Arch Linux и дистрибутивов на его основе. Главное изменение – собственный движок RLPM на языке Zig, который выполняет операции с системными пакетами без обращения к libalpm. В стандартной сборке доступны оба движка, а libalpm остаётся первоначальным выбором. Обновление также расширяет изолированные сборки AUR, улучшает показ разрешений Flatpak и исправляет интеграцию AppImage.

Что изменилось в Shelly 3.1.7

comss img 2026 10 16 134143
Shelly

Shelly объединяет управление пакетами из репозиториев Arch, AUR, Flatpak и AppImage. У программы есть графический интерфейс GTK4 и командная строка. Ранее мы рассказывали о переработке поиска и терминального интерфейса Shelly; в новом выпуске основное изменение касается механизма установки и обновления системных пакетов.

В примечаниях к выпуску 3.1.7 разработчики выделяют следующие направления:

ОбластьИзменение относительно 3.1.6
Движок пакетовНезависимая реализация RLPM и общий интерфейс выбора между ней и libalpm
Варианты сборкиВозможность собрать программу без libalpm, с RLPM по умолчанию
Интеграция дистрибутивовПрофили путей Arch и Devario, выбор файла конфигурации и политика каталогов хуков
Изолированные сборкиУстановка из AUR через отдельные свежие окружения, полные планы зависимостей и подготовка окружения через RLPM
Готовые пакетыПредустановки сжатия и отдельная настройка архитектуры выходного пакета
Упаковка ShellyРаздельные пакеты CLI, Flatpak, уведомлений и вариант без службы уведомлений
ИнтерфейсДоступность, просмотр PKGBUILD с данными Atoll, пояснения разрешений и интеграция AppImage
ОчисткаУдаление всего содержимого AUR-кэша Shelly через --aur-cache

RLPM: собственная реализация вместо вызовов libalpm

libalpm – библиотека управления пакетами, которую использует pacman. Она отвечает за работу с базами пакетов и выполнение операций установки, удаления и обновления.

RLPM, или Rolling Linux Package Manager, самостоятельно читает базы репозиториев, разрешает зависимости, загружает и проверяет архивы, устанавливает и удаляет пакеты, выполняет обновления, хуки и установочные сценарии. Движок также обнаруживает файловые конфликты и использует блокировки транзакций.

Он поддерживает обычные tar-базы репозиториев и базы CachyOS со встроенным SQLite-файлом pacman.db. Локальные записи используют формат базы версии 9; информация о репозитории, из которого установили пакет, сохраняется в поле INSTALLED_DB.

RLPM и libalpm используют общую блокировку db.lck. Если база изменилась после подготовки плана, RLPM останавливает операцию с ошибкой StaleDatabaseState. Проверка подписей учитывает настроенную политику доверия; импорт неизвестного ключа требует решения пользователя и сам по себе не делает ключ доверенным.

Для повреждённой или прерванной публикации записей предусмотрено восстановление согласованного состояния базы. Оно не отменяет уже записанные файлы, выполненные сценарии и завершённые установки других пакетов. Полного отката файловой системы у RLPM нет.

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

Как проверить и переключить движок

В руководстве RLPM описано переключение через настройку NativePackageBackend. Проверить текущий выбор можно командой:

shelly config get NativePackageBackend

Включить RLPM:

shelly config set NativePackageBackend rlpm

Вернуть libalpm, если он включён в установленную сборку:

shelly config set NativePackageBackend libalpm

Выбор сохраняется в ~/.config/shelly/config.json и применяется при следующем запуске CLI. Графическое приложение выполняет системные операции через CLI и использует тот же движок. При ошибке Shelly автоматически не переключается на другой вариант.

Для сборки CLI без libalpm из дерева исходного кода предусмотрена команда:

cd Shelly.Cli.Zig
zig build -Dlibalpm=false

Такая сборка изначально использует RLPM и не позволяет выбрать libalpm. В частности, отдельные рецепты packaging/arch/shelly-git и Devario собирают именно этот вариант. Поэтому поведение конкретного пакета зависит от его рецепта сборки.

Профили Arch и Devario: движок и пути настраиваются отдельно

При стандартном профиле Arch смена движка сохраняет используемые пути и совместимый формат установленной базы. Конвертация базы не требуется. Профиль Devario задаёт другие расположения:

РесурсArchDevario
Конфигурация/etc/pacman.conf/etc/shelly.conf
База пакетов/var/lib/pacman/var/lib/shelly
Кэш пакетов/var/cache/pacman/pkg/var/cache/shelly/pkg
Связка ключей/etc/pacman.d/gnupg/etc/shelly.d/gnupg
Поставляемые наборы открытых ключей/usr/share/pacman/keyrings/usr/share/shelly/keyrings
Системные хуки/usr/share/libalpm/hooks/usr/share/rlpm/hooks
Хуки администратора/etc/pacman.d/hooks/etc/shelly.d/hooks

Переключение на RLPM не меняет профиль, а выбор другого профиля не переносит существующие базы, кэш и ключи. Параметр --config позволяет явно указать файл конфигурации для одного запуска. Для каталогов хуков доступна политика HookDirMode: Append дополняет стандартный список, Replace использует только явно перечисленные каталоги.

Сборки AUR в отдельных окружениях и фиксация зависимостей

Shelly расширяет изолированную сборку на установку пакетов из AUR:

shelly -Ia --isolated <package>

Здесь <package> нужно заменить именем пакета. Для каждой базы пакетов, то есть pkgbase, создаётся отдельное окружение. Сборочные зависимости из репозиториев остаются внутри него; готовые архивы и необходимые зависимости времени выполнения устанавливаются обычной транзакцией в основной системе.

План зависимостей фиксирует версии, репозитории, SHA-256, связи между пакетами и контрольные суммы проверенных входных данных. Перед установкой в окружение Shelly сверяет выбранные архивы с планом. Неполный план останавливает подготовку окружения.

Режиму нужны соответствующие пространства имён Linux и systemd-nspawn. Зависимости сборки, доступные только в AUR, и подпись закрытыми ключами внутри окружения пока не поддерживаются. Параметр --isolated нельзя совмещать с --chroot и режимами установки только зависимостей.

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

Сам сборщик получил исправления динамических версий pkgver(), генерации SRCINFO, больших наборов пакетов из одного рецепта, извлечения исходников, обработки ключей и синтаксиса оболочки. Настройка destinations.sources теперь последовательно передаётся как SRCDEST.

В документации сборщика описаны новые уровни сжатия --compression-level от 1 до 5 для Zstandard, gzip, xz и bzip2. Если уровень не задан, сохраняются значения библиотеки по умолчанию. Настройка package.carch отдельно меняет обозначение архитектуры готового пакета, но не целевую архитектуру компилятора; пакеты any остаются any. Принимающий менеджер пакетов должен поддерживать выбранное обозначение.

comss img 2026 10 16 134211
Shelly

Разрешения Flatpak, AppImage и доступность интерфейса

Разрешения Flatpak в CLI и GTK теперь сгруппированы по смыслу: сеть, устройства, файловая система и службы сеанса. Ошибочные или нечитаемые метаданные больше не отображаются как отсутствие запрошенных разрешений.

В GTK улучшены управление с клавиатуры, возврат фокуса, названия и роли элементов для вспомогательных технологий. Экранный диктор сообщает о смене страниц первого запуска, ходе операций и пустых результатах поиска. Обновлены немецкий, итальянский, польский, бразильский и европейский португальский переводы.

Исправления AppImage затрагивают установку, ассоциации файлов и обновление путей в ярлыках после переноса приложения. Копирование и восстановление сохраняют право на выполнение: ранее его потеря могла сделать приложение незапускаемым и скрыть ярлык из меню.

Для автоматического выбора единиц размера в текстовом выводе появилась настройка:

shelly config set FileSizeDisplay Auto

Она выбирает B, KiB, MiB, GiB или TiB. По умолчанию сохраняется Megabytes, а структурированный вывод по-прежнему передаёт числовое количество байтов.

Раздельные пакеты и расширенная очистка кэша

Новые рецепты разделяют приложение на shelly, shelly-cli, shelly-flatpak-backend и shelly-notify. Для установки без службы уведомлений предусмотрен shelly-notify-none; соответствующие варианты есть и для Git-сборок. Отдельный компонент Flatpak существовал раньше – версия 3.1.7 расширяет схему упаковки.

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

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

Обычная очистка запрашивает подтверждение. Результаты, сохранённые за пределами кэша Shelly, она не затрагивает. Графическая очистка кэша также получила расширенный охват AUR.

Как установить Shelly

Разработчики рекомендуют установку в CachyOS либо использование его пакетов. В апрельском выпуске CachyOS Shelly заменил Octopi в выборе графического менеджера пакетов. Для систем, в подключённых репозиториях которых есть Shelly, команда выглядит так:

sudo pacman -S shelly

На официальной странице проекта также приведены варианты установки через AUR-помощники:

yay -S shelly

Или:

paru -S shelly

Эти команды устанавливают версию, доступную в соответствующем источнике. Публикация 3.1.7 на GitHub не означает, что пакет уже обновили во всех репозиториях дистрибутивов.

Вывод

Shelly получил самостоятельный движок системных пакетов и возможность собирать вариант без libalpm. Для повседневной работы обновление также делает понятнее разрешения приложений, улучшает интеграцию AppImage и даёт больше контроля над сборками AUR. Перед использованием RLPM стоит проверить вариант установленной сборки и учитывать текущие ограничения совместимости и восстановления после сбоев.

Читаете нас в Google? Добавьте Comss.ru в источникиДобавьте Comss.ru в источники Google
Новые статьи будут чаще в «Главных новостях» Google. Без подписок и уведомлений, отключается в один клик. Нужен вход в аккаунт Google.Наши статьи будут чаще в «Главных новостях». Нужен вход в Google.
Добавить в Google
© .
Комментарии и отзывы

Нашли ошибку?

Новое на сайте