После года разработки в конце концов запуск стабильная версия менеджера пакетов "RPM 4.16", в котором были сделаны некоторые улучшения об операторах, новых бэкэндах и других изменениях.
Проект RPM4 разработан Red Hat и используется в таких дистрибутивах, как RHEL (включая производные от CentOS, Scientific Linux, AsiaLinux, Red Flag Linux, Oracle Linux), Fedora, SUSE, openSUSE, ALT Linux, OpenMandriva, Mageia, PCLinuxOS, Tizen и многих других.
Ранее независимая группа разработчиков разрабатывала проект RPM5, который не имеет прямого отношения к RPM4 и в настоящее время заброшен (не обновляется с 2010 года). Код проекта распространяется под лицензией GPLv2.
Основные новые функции RPM 4.16
В этой новой выпущенной версии диспетчера пакетов RPM 4.16 был реализован новый бэкэнд для хранения баз данных в СУБД SQLite, с этим бэкэндом планируется, что версия Fedora 33 будет использовать его вместо бэкэнда на основе BerkeleyDB.
Еще одно изменение, которое было реализовано, - это новый экспериментальный бэкэнд только для чтения для хранения базы данных в BDB (Oracle Berkeley DB). Реализация написана с нуля и не использует устаревший бэкэнд-код BerkeleyDB, который устарел, но все еще включен по умолчанию.
Со стороны макросов и выражений Добавлена поддержка "% If" для тенарного оператора. (% {expr: 1 == 0? »yes»: »no»}) и предлагают встроенное сравнение версий ('% [v »3: 1.2-1 ″> v» 2.0 ″]') и новых. были добавлены макросы% arm32,% arm64 и% riscv для определения архитектуры, а также вместе с ними встроенный макрос% {macrobody:…} для получения содержимого макроса.
В дополнение к этому, предложена новая версия API синтаксического анализа и сравнения для языков C и Python.
Обеспечено распараллеливание исполнения Brp-strip и компоненты набора тестов. Проведена оптимизация распараллеливания процесса генерации пакетов.
Также добавлена опция «–salvagedb» в утилиту rpmdb для восстановления поврежденной базы данных (работает только с бэкэндом NDB).
Запрещается использовать в выражениях слова, не разделенные кавычками, например. Например, вместо 'a == b' теперь нужно написать '»a» == »b»'.
Синтаксический анализатор выражений реализует синтаксис «% […]» для выполнения выражения с раскрытием макроса (отличается от «% {expr: ...}» тем, что макросы выполняются первыми).
Был добавлен поддержка кратковременного расширения логических операторов и тенариев в выражениях ("% [0 && 1/0]" обрабатывается как 0 и не приводит к ошибке из-за попытки деления на ноль).
Добавлено поддержка использования оператора логического НЕ в произвольных контекстах (! "%? Фу").
Поведение операторов "||" а «&&» выровнено по Perl / Python / Ruby, т.е. вместо возврата логического значения теперь возвращается последнее вычисленное значение (например, «% [2 || 3]» вернет 2).
Из другие изменения, которые выделяются этой новой версии RPM 4.16:
- Добавлена возможность проверки альтернативных форматов цифровых подписей и хэшей.
- Добавлена поддержка мета-зависимостей (Requires (meta): somepkg), которые не влияют на порядок установки и удаления.
- Добавлен параметр «–rpmv3» в rpmsign для принудительного применения цифровых подписей RPM3.
- Добавлен параметр установки «–excludeartifacts», позволяющий пропустить установку документации, примеров файлов конфигурации и других связанных данных.
- Устаревшая поддержка криптографических бэкэндов RPMv3 и beecrypt, а также NSS.
- Добавлена поддержка DSA2 (gcrypt) и EdDSA.
- Удалена экспериментальная серверная база данных на основе LMDB.
- Стабильная заявленная серверная база данных на основе хранилища NDB.
- Реализована поддержка классификации файлов в соответствии с их типами содержимого MIME.
- Добавлена возможность генерировать зависимости с помощью параметрических макросов.
В конце концов если вы хотите узнать об этом больше, вы можете проверить полный список изменений По следующей ссылке.
Что касается реализации новой версии, вам нужно подождать, пока она будет размещена в официальных каналах вашего дистрибутива, или, если вы энтузиаст, вы можете скомпилировать пакет. Ссылка скачать это.
Будьте первым, чтобы комментировать