Prova de la divisió de paquets del sistema base FreeBSD
Проект TrueOS va anunciar о тестировании экспериментальных сборок FreeBSD 12-ESTABLE и FreeBSD 13-CURRENT, в которых монолитная базовая система преобразована в набор связанных между собой пакетов. Сборки развиваются в рамках проекта pkgbase, предоставляющего средства для использования штатного пакетного менеджера pkg для управления пакетами, образующими базовую систему.
Поставка в форме раздельных пакетов позволяет существенно упростить процесс обновления базовой системы и использовать единую утилиту pkg как для обновления дополнительных приложений (портов), так и для обновления базовой системы, включая компоненты пространства пользователя и ядро. Проект также даёт возможность сгладить ранее жёстко очерченные рамки между базовой системой и портами/репозиторием пакетов, а в процессе обновления учитывать сочетаемость сторонних программ с компонентами основного окружения и ядром.
Pkgbase разделяет базовую систему на следующие пакеты:
userland (мета-пакет, охватывающий все пакеты с компонентами пространства пользователя базовой системы)
userland-base (основные исполняемые файлы и библиотеки)
userland-lib32 (библиотеки для совместимости с 32-разрядными приложениями);
userland-tests (фреймворки для тестирования)
kernel (основное ядро в конфигурации GENERIC)
kernel-debug (ядро, собранное в отладочном режиме Testimoni)
kernel-symbols (отладочные символы для ядра, размещаемые в /use/lib/debug)
kernel-debug-symbols (отладочные символы, при сборке ядра в режиме Witness)
Дополнительно предоставляется несколько пакетов для сборки из исходных текстов: src (код базовой системы, устанавливаемый в /usr/src), buildworld (файл /usr/dist/world.txz с логом сборки buildworld), buildkernel (файл /usr/dist/kernel.txz c логом сборки buildkernel) и buildkernel-debug (файл /usr/dist/kernel-debug.txz с отладочным логом сборки ядра).
Пакеты для ветки 13-CURRENT будут обновляться раз в неделю, а для ветки 12-STABLE каждые 48 часов. В случае изменения предлагаемых по умолчанию файлов конфигурации, в процессе установки обновления производится их слияние с локальными изменениями в каталоге /etc. Если выявляется конфликт, не позволяющий объединить настройки, то оставляется локальный вариант, а предлагаемые изменения сохраняются в файлах с расширением «.pkgnew» для последующего ручного разбора (для вывода списка конфликтующих файлов с настройками можно использовать команду «find /etc | grep ‘.pkgnew$'»).