Shelly 3.1.3 – менеджер пакетов для Arch Linux с поддержкой репозиториев, AUR, Flatpak и AppImage – вышел 2026 года, через неделю после версии 3.1.2. Параметр --aur-cache очищает кэш собранных пакетов AUR, не затрагивая PKGBUILD, исходники и каталоги сборки. Каждый установленный AppImage получил собственный набор переменных окружения, который сохраняется при обновлении приложения. Изолированные сборки переведены с pacstrap на собственный вспомогательный инструмент shellystrap на базе libalpm. Настройка ParallelDownloadCount теперь влияет на загрузку баз репозиториев и пакетов: диапазон значений – от 1 до 255, по умолчанию – 100.

Что удаляет --aur-cache и что остаётся на диске
Собранные из AUR архивы накапливаются в кэше Shelly и со временем занимают заметный объём. Новый параметр --aur-cache для shelly purify standard удаляет все собранные архивы пакетов AUR вместе с соответствующими подписями. PKGBUILD, история checkout, загруженные исходники и каталоги сборки остаются на месте.
PKGBUILD – сценарий сборки пакета в Arch Linux, описывающий источники, зависимости, контрольные суммы и шаги компиляции; по нему makepkg или сторонний сборщик получает готовый архив пакета.
Предварительный просмотр запускается отдельным параметром, само удаление – без него:
shelly purify standard --aur-cache --dry-run
shelly purify standard --aur-cache
Параметр сочетается с --cache: тогда за один вызов очищается и обычный кэш пакетов. Ручной режим очистки включает настройка DisableCacheClean:
shelly config set DisableCacheClean true
С этой настройкой Shelly не запрашивает очистку и не удаляет кэш при shelly upgrade all и его псевдонимах. По умолчанию очистка включена, а поведение отдельного shelly upgrade standard не меняется.
Переменные окружения для каждого установленного AppImage
Установленному AppImage теперь можно задать собственные переменные окружения – из графического интерфейса либо из терминала.
AppImage – формат распространения приложений для Linux, при котором программа и её зависимости упакованы в один исполняемый файл и запускаются без установки в систему.
shelly config appimage "MyApp" --set-env "MY_VARIABLE=my-value"
shelly config appimage "MyApp" --unset-env "MY_VARIABLE"
Вместо MyApp подставляется точное имя установленного приложения. Переопределения применяются и при запуске с рабочего стола, и через shelly run, а после обновления самого AppImage сохраняются. Из терминала доступны также очистка и полная замена всего набора переопределений. Отдельно исправлена проверка обновлений по StaticURL: она корректно следует за перенаправлениями.
Исправления в собственном сборщике PKGBUILD
Основная часть выпуска приходится на встроенный сборщик пакетов. В версии 3.1.3 устранены случаи, когда корректный рецепт сборки не проходил обработку:
- исправлен разбор here-string и подстановки вывода, из-за которого вспомогательные сценарии сборки получались синтаксически неверными;
- значение SOURCE_DATE_EPOCH стало единым для вычисления PKGBUILD, шагов сборки и метаданных пакета;
- переработано планирование зависимостей для условных массивов, зависимостей под конкретную архитектуру и split-пакетов;
- улучшено определение и распаковка архивов, включая архивы без расширения;
- добавлена отдельная распаковка gzip, Unix compress, bzip2, xz и zstd до вызова prepare() с учётом псевдонимов источников и noextract;
- пустые необязательные присваивания вида install='' больше не отбраковываются как небезопасный путь;
- если утилита strip не справляется с двоичным файлом, сборка выдаёт предупреждение и оставляет файл нетронутым, что позволяет собрать в том числе пакет pi;
- исправлены проверка источников с несколькими подписями PGP и порядок аргументов сервера ключей при импорте.
shellystrap заменил pacstrap в изолированных сборках
Чистые корневые окружения для изолированных сборок готовит shellystrap – вспомогательный инструмент проекта на базе libalpm. Он снял зависимость от pacstrap и выполняет подготовку внутри приватных пространств имён.
libalpm – библиотека управления пакетами Arch Linux, на которой построен штатный pacman; работающие с ней напрямую программы обращаются к базе установленных пакетов без разбора текстового вывода pacman.
Открытые ключи, которыми подписаны исходники, переносятся из связки ключей вызывающего пользователя внутрь изолированного окружения. Доработаны подготовка проверенных файлов, сверка зависимостей со свежесинхронизированными базами приватных репозиториев и очистка при отмене операции, включая случаи с повышением привилегий. Изолированный режим требует наличия unshare из пакета util-linux и systemd-nspawn, а при работе без участия оператора ключи подписи источников импортируются заранее: параметр --no-confirm импорт недостающих ключей не подтверждает.
JSON-вывод и shelly resolve для сборочных систем
Для автоматизации в выпуск вошли четыре изменения:
- shelly --version --json отдаёт версию и перечень доступных возможностей;
- предварительный разбор сборки и её результат выводятся в JSON с проверкой дайджеста разбора;
- каталог, куда складываются готовые пакеты, стал настраиваемым;
- shelly resolve сопоставляет точные имена пакетов из репозиториев или AUR с их базовыми пакетами (pkgbase).
Ссылки Flathub, диалоги конфликтов и расписание в трее
Графическая часть получила семь изменений:
- ссылка Flathub открывает нужное приложение, даже если Shelly уже запущен или ещё загружает каталог; обрабатываются файлы ссылок Flatpak и ссылки AppStream;
- в карточке Flatpak появились удаление, отметки об установленных и проверенных приложениях, выбор репозитория-источника и понятная индикация загрузки;
- диалог конфликта пакетов называет, какой установленный пакет будет удалён и что придёт на замену;
- проверки обновлений в трее получили режим cron: первая проверка ждёт заданного времени недели, а еженедельное расписание больше не зависит от настройки символьного значка;
- исправлено восстановление списка установленных пакетов AUR после перезагрузки представления;
- доработаны индикация загрузки зависимостей, отображение длинных имён пакетов и сообщения об ошибках в терминальном, текстовом и графическом интерфейсах;
- настройка поддержки (support setup) пропускает уже установленные зависимости.
ParallelDownloadCount принимает значения от 1 до 255
Загрузка баз репозиториев и самих пакетов теперь учитывает настройку ParallelDownloadCount. Допустимый диапазон – от 1 до 255, значение по умолчанию – 100. Старые конфигурации с недопустимыми значениями откатываются к значению по умолчанию. Обновлены переводы интерфейса на итальянский и китайский язык в упрощённом письме.
Заключение
Выпуск 3.1.3 закрывает три бытовые проблемы Shelly: кэш собранных пакетов AUR приходилось чистить вручную, переменные окружения AppImage терялись при обновлении приложения, а ParallelDownloadCount не влиял на скорость загрузки. В CachyOS, где Shelly работает графическим менеджером пакетов по умолчанию с апрельского выпуска, новая версия приходит из репозиториев дистрибутива; на Arch Linux пакет ставится из AUR. Перед переходом на изолированные сборки нужно проверить наличие unshare и systemd-nspawn и заранее импортировать ключи подписи источников. Полный перечень правок опубликован в заметках к выпуску Shelly 3.1.3.