RPM 6.1 вышел: установка пакетов ускорилась, а подпись стала безопаснее
Разработчики RPM выпустили стабильную версию RPM 6.1 - очередное крупное обновление популярного менеджера пакетов, используемого во многих Linux-дистрибутивах. После нескольких месяцев подготовки и тестирования релиз-кандидата новая версия получила заметные оптимизации производительности, расширенные возможности макросов, улучшения диагностики и поддержку аппаратных средств для криптографической подписи.
Одним из главных нововведений стала более быстрая установка программ. На системах с ядром Linux 5.11 и новее, а также glibc 2.34 или более свежей версией RPM эффективнее закрывает файловые дескрипторы. В отдельных сценариях это позволяет сократить продолжительность установки примерно на 26%. Поэтому RPM 6.1 установка пакетов может быть особенно заметна на системах, где выполняется обработка большого количества файлов или регулярно обновляются масштабные наборы программ.
Изменения затронули и работу с транзакциями. Хранилище ключей теперь использует собственную блокировку, а не разделяет её с блокировкой транзакций. Это исправляет регрессию, появившуюся в RPM 6.0: во время выполнения транзакции запросы к базе данных RPM могли полностью блокироваться. Новый подход снижает взаимное влияние операций и делает работу менеджера пакетов более предсказуемой.
В RPM 6.1 также по умолчанию восстановлены поиски пользователей и групп через NSS - механизм, который был отключён в RPM 4.19. При этом для операций с параметром `--root` NSS-запросы по-прежнему не выполняются. Администраторы могут отключить такую функциональность и вручную с помощью макросов RPM. Кроме того, сведения о пользователях и группах теперь могут поступать из окружения работающей системы, а не только из устанавливаемых пакетов.
Существенно расширен макропроцессор. Поведение макроса теперь разрешается менять непосредственно в момент его определения благодаря новому синтаксису модификаторов. В первоначальный набор вошли режим буквального раскрытия и одноразового раскрытия. Директива `%define` получила дополнительные параметры `-e` и `-g`, что предоставляет разработчикам пакетов более гибкие инструменты для управления процессом сборки.
Для создателей RPM-пакетов появилась ещё одна полезная возможность: окружение скрипта сборки экспортируется в файл `rpmbuild.env`, размещаемый внутри каталога `%{builddir}`. Кроме того, `rpmbuild` теперь принимает аргумент этапа сборки `k` для запуска скриплета `%check`. Разработчики отмечают, что это особенно удобно при использовании параметра `--short-circuit`, позволяющего пропускать уже завершённые стадии сборки.
Отдельное внимание уделено диагностике ошибок архитектуры. Если исполняемый файл не соответствует архитектуре пакета, RPM 6.1 выводит более подробную информацию. Теперь сообщение указывает конкретный пакет или подпакет, а также перечисляет имена файлов и их типы, из-за которых возник конфликт. Это упрощает поиск проблем в сложных пакетах и ускоряет исправление ошибок в спецификациях.
Важным изменением в области безопасности стала поддержка подписи файлов с помощью токенов PKCS#11. Благодаря этому механизм RPM 6.1 подпись пакетов PKCS#11 можно интегрировать с аппаратными криптографическими устройствами и внешними защищёнными хранилищами ключей. Такой подход позволяет не держать закрытые ключи непосредственно в файловой системе сборочного сервера и лучше соответствует требованиям корпоративной безопасности.
Разработчики также переработали вывод при проверке подписей и целостности пакетов. Исправлены ситуации, в которых RPM мог показывать слишком много сообщений либо выдавать вводящие в заблуждение и некорректные уведомления. Более аккуратная диагностика должна упростить автоматическую обработку результатов проверки в сценариях администрирования и CI/CD.
Документация RPM 6.1 стала заметно полнее. В комплект добавлены новые справочные страницы, посвящённые генераторам зависимостей, архитектуре RPM, скриптлетам, sysusers и обработке зависимостей ELF. Руководство по `rpmbuild` теперь подробнее описывает этапы сборки, а документация `rpmkeys` расширена сведениями об общей политике проверки подписей. Поэтому RPM 6.1 документация будет полезна не только разработчикам самого менеджера пакетов, но и сопровождающим дистрибутивы.
Новый релиз получил и обновлённую модель разработки. Она частично вдохновлена подходом Linux kernel и призвана сделать выпуск будущих версий более регулярным и предсказуемым. Для пользователей это означает более понятный цикл обновлений, а для разработчиков дистрибутивов - удобнее планирование интеграции новых функций и исправлений.
Перед установкой RPM 6.1 в production-среде рекомендуется проверить совместимость с конкретным дистрибутивом, версией glibc и используемыми инструментами сборки. Особенно внимательно стоит протестировать системы, где применяются нестандартные макросы, собственные генераторы зависимостей или аппаратные ключи для подписи. При необходимости скачать RPM 6.1 можно из официальных репозиториев своего дистрибутива либо со страницы релиза, где опубликованы подробности изменений и доступные материалы: подробный обзор RPM 6.1.
Переход на новую версию имеет смысл прежде всего для сопровождающих пакеты, сборочных инфраструктур и администраторов, работающих с крупными транзакциями. Ускорение установки, исправление блокировок базы данных, более информативные сообщения об ошибках и поддержка PKCS#11 делают RPM 6.1 не косметическим обновлением, а полноценным шагом вперёд для Linux-систем, где надёжность управления пакетами имеет критическое значение.

