В дерево исходных текстов FreeBSD принят код альтернативного инсталлятора

В состав FreeBSD HEAD интегрирована поддержка pc-sysinstall, альтернативной программы установки, разработанной в недрах проекта PC-BSD. Главная особенность нового инсталлятора в разделении составляющих установщика на фронтэнд и бэкенд. Из возможностей отмечена поддержка ZFS, raidz, gmirror-зеркалирования, GPT/EFI, GELI-шифрования, gjournal, присутствует собственный менеджер для MBR слайсов/разделов, после установки формируется подробный лог, отражающий статус выполнения всех операций.

В настоящий момент во FreeBSD добавлена реализация консольного (dialog/curses) режима установки, написанного на Shell и напоминающего классический sysinstall. Дополнительно подготовлен графический (на базе Qt) режим установки, который в настоящее время используется в проекте PC-BSD. Что касается фронтэнда, то он выполняет функцию генератора скрипта для выполнения итоговой установки, на вход принимается специально сформированный бэкендом файл конфигурации, что позволяет легко организовать выполнение ранее подготовленных сценариев для автоматизированной установки. На стороне бэкенда организована только работа пользовательского интерфейса.

Следует отметить, что pc-sysinstall не является первым альтернативным инсталлятором, из похожих проектов можно отметить Finstall (на языке Python) и BSD Installer (бэкенд на языке Lua). Кроме того, в рамках проекта BSD Installer была предпринята попытка создания бэкенда в виде web-интерфейса, который дает возможность управлять процессом установки с другой машины. Возможно, что найдутся энтузиасты, способные повторить данный опыт для инсталлятора PC-BSD.

Из проблем классического установщика sysinstall, побудивших команду разработчиков PC-BSD к написанию собственной программы установки, отмечаются: отсутствие возможности автоматизации процесса установки и использования скриптов; запутанная архитектура; трудоемкость добавления новых функций (например, поддержки новых файловых систем); отсутствие лога с сохранением текстов ошибок; монолитный дизайн; нет возможности локализации процесса установки на другие языки.

©  OpenNet