RPM Package Manager — это инструмент управления пакетами, предназначенный для установки, обновления, удаления, проверки и запроса программ.
Было объявлено о запуске новой версии менеджера пакетов «RPM 4.19», в котором были отмечены внесенные улучшения и исправления, а также улучшения в APIS, поддержке, новой системе компиляции CMake и многое другое.
В настоящее время проект 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 года).
Пакет RPM может содержать любое количество файлов. Большинство файлов RPM являются «бинарными RPM» (или BRPM), которые содержат скомпилированную версию какого-либо программного обеспечения. Существуют также «исходные RPM» (или SRPM), которые содержат исходный код, используемый для сборки бинарного пакета. Файлы SRPM обычно имеют расширение «.src.rpm» (или «.spm» в файловых системах, ограниченных тремя символами, таких как старые DOS FAT).
Основные новые функции RPM 4.19
В новой версии RPM 4.19 одной из наиболее заметных особенностей является добавление поддержки файлов ".specpart" для динамической генерации файлов спецификаций, а также добавление параметра " --generate-subpackages " в скрипт find_lang.sh, который использует файлы .specpart.
Еще одно важное изменение в новой версии RPM 4.19 — интеграция с системным каталогом учетных записей пользователей sysusers.d для автоматической обработки пользователей и групп. Кроме того, добавлена поддержка генерации пользователей и групп из файлов /etc/passwd, /etc/group и sysusers.d, входящих в состав пакета.
Что касается улучшений поддержки, то следует отметить следующие: добавлены уровни архитектуры x86-64, исправлен способ генерации моделей x86 в rpmrc, изменена система сборки CMake с заменой Autotools, а fakechroot заменен контейнерной технологией.
Мы также можем обнаружить, что в файлах спецификаций была добавлена поддержка скриптлетов %preuntrans и %postuntrans, а также добавлена утилита rpmsort для сортировки версий пакета rpm.
В дополнение к этому были добавлены опции «-nopreuntrans», «-nopostuntrans» и «-nosysusers» для отключения скриптов и автоматического создания пользователей и групп во время установки пакета.
Среди других существенных изменений в новой версии можно отметить следующие:
- Обеспечить надежную работу информации о пользователе/группе в chroot
- Сделать механизм rpmscript дружественным к chroot
- Исправлена регрессия перехвата плагинов для каждого файла, представленная в версии 4.18.
- Подавление предупреждающего сообщения о запрете блокировки, когда служба DBus недоступна.
- Исправление отсутствующих включений в macOS
- Функция, связанная с классификатором файлов rpmfcNew(), признана устаревшей.
- Исправлено игнорирование кода завершения дочерних скриптов в случае EINTR.
- Код включения потоков rpmioe был упрощен и очищен.
- Блок %files и утилита командной строки теперь поддерживают подстановку в стиле оболочки и экранирование специальных символов.
- Удалите некоторые другие старые и избыточные проверки времени конфигурации.
- Выделить переводы в отдельный проект
- По умолчанию используется локаль C.UTF-8, возможен возврат к C.
- Библиотеки были экспортированы как конфигурация cmake «find_package()».
- В API добавлены функции rpmGlobPath(), rpmEscape() и rpmUnescape().
- Распараллеливание сборки теперь выполняется с учетом памяти и адресного пространства.
- Добавлена документация по разработке в создание документации.
- Различные другие дополнения и исправления
- Для проектов, использующих CMake, предоставляется функция find_package(rpm).
- Исправлена ошибка сегментации в несцепляемом аргументе для вызова макроса из Lua.
Наконец, если вас интересует более подробная информация об этой новой версии, вы можете найти ее по следующей ссылке.