
RPM, одна из старейших и наиболее широко используемых систем управления пакетами в Linux, основа таких дистрибутивов, как RHEL, Fedora, openSUSE и других, объявила о выпуске RPM 6.0, что знаменует собой первый серьезный скачок в версионировании со времен серии 4.x.
Наиболее яркой особенностью является новый формат пакетов RPM v6, в котором все ограничения по размеру переведены на 64-битный формат, отменены устаревшие криптоалгоритмы MD5 и SHA-1 и добавлены SHA-512 и SHA3-256 для полезных нагрузок.
Заголовки пакетов также получили дайджесты SHA3-256, а информация MIME для каждого файла теперь встраивается непосредственно в метаданные. Совместимость широкая: пакеты v6 можно запрашивать в RPM 4.6 и более поздних версиях, распаковывать в 4.12, проверять или устанавливать в 4.14 и более новых версиях.
Безопасность также была усилена. Теперь RPM по умолчанию проверяет подписи, поддерживает OpenPGP v6 и даже ключи постквантовой криптографии (PQC), а также позволяет использовать несколько подписей для одного пакета.
Такие инструменты, как rpmkeys
и rpmsign
, были расширены для работы с этими изменениями, включая управление ключами на основе отпечатков пальцев, автоподписание с помощью макросов и возможность добавлять или заменять подписи, не нарушая существующие.
Что касается упаковки, то rpmbuild
может генерировать пакеты v4 и v6, причем v6 используется по умолчанию. Для упрощения настройки автоподписи добавлена новая утилита rpm-setup-autosign
. Также было решено несколько давних проблем в скриптах сборки, обработке зависимостей и макросов.
Документация также подверглась серьезной переработке. Man-страницы были переписаны в едином стиле, добавлены новые страницы для компонентов, которые ранее не были задокументированы, а на версионном сайте документации теперь размещены справочные руководства, API-документы и обновленные примеры.
Под капотом RPM теперь собран с помощью компилятора C 20
, что позволило перенести большую часть внутренних функций на современные структуры данных, продолжая поставлять привязки для Python (для которых теперь требуется Python 3.10 или более новая версия). Проект также уделяет особое внимание воспроизводимости, предоставляя нетронутые, поддающиеся проверке тарболы релизов.
Наконец, хотя RPM 6.0 по умолчанию переходит на новый формат, он сохраняет полную поддержку пакетов v4, обеспечивая совместимость с существующими экосистемами. Удаление поддержки установки v3 закрывает доступ к старым пакетам, хотя их все еще можно запросить или распаковать с помощью таких инструментов, как rpm2cpio
.
Для получения дополнительной информации см. примечания к выпуску.