Вышел yay 13.0 – крупное обновление популярного помощника AUR для Arch Linux, выпущенное вслед за недавней волной вредоносных пакетов в репозитории. Само по себе обновление не меняет принципы работы AUR и не делает пакеты безопаснее: вместо этого в нём собраны инструменты для проверки, фильтрации и автоматизации разбора сборок перед установкой и обновлением. Среди ключевых изменений – отметка о времени последнего изменения PKGBUILD, настройка через Lua и набор обработчиков, через которые можно подключить собственные проверки.

yay – вспомогательная утилита для установки пакетов из пользовательского репозитория AUR в Arch Linux, написанная на Go.
AUR (Arch User Repository) – поддерживаемый сообществом репозиторий сборочных сценариев для Arch Linux. Пакеты в нём публикуют сами пользователи, и официальной проверки они не проходят.
Время последнего изменения PKGBUILD в результатах поиска
В yay 13.0 рядом с каждым пакетом AUR выводится время, прошедшее с последнего изменения его файла сборки PKGBUILD. Отметка появляется при поиске, в меню yogurt (совмещённый режим поиска и установки) и в списках обновлений. Выглядит она как 6h17m или 18d13h – часы и минуты либо дни и часы с момента последней правки.
PKGBUILD – файл сборки, по которому утилита makepkg собирает пакет из исходного кода и устанавливает его через pacman.
Недавняя правка сама по себе не делает пакет подозрительным, а давняя – безопасным. Возраст PKGBUILD – лишь дополнительный признак, который стоит учитывать при разборе сборки. На фоне волны вредоносных пакетов в AUR, когда к свежим правкам и смене сопровождающих стали присматриваться внимательнее, такая метка даёт ещё один повод проверить сборку до установки.
Настройка через файл init.lua
Вторая крупная новинка – конфигурация на языке Lua. yay 13.0 загружает файл init.lua по пути $XDG_CONFIG_HOME/yay/init.lua (обычно ~/.config/yay/init.lua). Если файла нет, никакой код на Lua не выполняется.
Прежний config.json продолжает работать, но настройки из init.lua имеют над ним приоритет. Флаги командной строки по-прежнему важнее обоих файлов. Базовые параметры задаются через объект yay.opt – например, порядок вывода пакетов или поле сортировки результатов поиска по AUR.
Обработчики UpgradeSelect, AURPreInstall и AURPostDownload
Главное, что дают сценарии на Lua, – обработчики, привязанные к разным этапам работы yay. На одно событие можно зарегистрировать сразу несколько обработчиков.
Обработчик UpgradeSelect срабатывает во время yay -Syu: после того как список обновлений рассчитан, но до появления штатного меню исключения пакетов. Он возвращает имена пакетов, которые нужно убрать из обновления – например, пакеты AUR с недавно изменённым PKGBUILD. Если на событие назначено несколько обработчиков, их списки исключений объединяются; а если хотя бы один вернёт признак skip_menu, штатное меню выбора пропускается.
Ещё два обработчика встроены в процесс установки пакета из AUR. AURPreInstall запускается сразу после загрузки репозиториев PKGBUILD – ещё до меню очистки, сравнения и правки, а также до начала сборки. Поэтому он подходит для проверок по содержимому файла сборки. AURPostDownload срабатывает позже, после makepkg --verifysource: на этом этапе доступны и репозиторий PKGBUILD, и загруженные исходники, но проверка совместимости, запрос на импорт ключей PGP и установка ещё не выполнены.
Обработчикам передаются и дополнительные данные о пакете, включая сведения о сопровождающем в AUR. Добавлены также обработчики фильтрации результатов поиска и обработчики, выполняемые после установки. Через них можно собирать собственные проверки: на недавно изменённые пакеты, смену сопровождающего, недавно опубликованные сборки, адреса источников и прочие метаданные.
Почему проверки не заменяют ручной разбор пакетов
yay 13.0 вышел вскоре после новой волны вредоносных пакетов в AUR, где код прятали за обфускацией. При этом разработчик сознательно не превращает yay в средство защиты: обновление не меняет модель доверия репозитория и не отсеивает вредоносные сборки автоматически.
Разработчик yay Jo Guerreiro предупреждает, что не хочет скатываться в «театр безопасности», когда проверки лишь создают видимость защиты. Автоматические проверки, по его словам, помогают, но не должны подменять ручной разбор файлов сборки. Следующая волна вредоносного кода, отмечает он, придёт в другой форме и будет создаваться с прицелом на обход существующих средств обнаружения.
Заключение
yay 13.0 не делает AUR безопаснее сам по себе – и разработчик это прямо подчёркивает. Тем, кто и раньше просматривал сборки перед установкой, обновление даёт больше сигналов (возраст PKGBUILD) и способ автоматизировать часть проверок на Lua. Для тех, кто устанавливает пакеты не глядя, риск остаётся прежним.
Обновление вышло и уже доступно в AUR. Полный список изменений опубликован на странице релиза, а подробный разбор новых возможностей – в анонсе.