Проект DragonFly BSD представил новую систему сборки пакетов DPorts

05.01.2013 10:18

Время от времени в списках рассылки и IRC всплывали вопросы об использовании портов FreeBSD в DragonFly BSD. Джон Марино (John Marino), один из разработчиков DragonFly, в недавнем коммите добавил в DragonFly BSD штатную возможность использования новой системы сборки пакетов DPorts (DragonFly Ports).

DPorts представляет собой вариант портов из FreeBSD, адаптированных для сборки в DragonFly BSD. Для сборки и инсталляции вместо bmake, которая применяется в изначально поддерживаемой в DragonFly BSD системе управления пакетами pkgsrc, используется утилита make. Для управления установленными пакетами в системе используется новая утилита из FreeBSD - pkg (утилиты pkg_* не требуются), развиваемая в рамках проекта pkgng, предоставляющая интерфейс в стиле пакетного менеджера APT и обеспечивающая поддержку таких функций, как обновление пакетов, работа с репозиториями бинарных пакетов, учёт зависимостей и полноценные средства для работы с метаданными.

Для желающих опробовать новую систему требуется наличие свежей экспериментальной ветки DragonFlyBSD, в рамках которой развивается будущий релиз 3.3. Для создания репозитория DPorts предлагается два варианта, основанных на использовании следующих команд:

   cd /usr   1) make dports-create   2) make dports-create-shallow   3) make dports-download 

Первая команда используя систему управления исходными текстами Git клонирует полный репозиторий DPorts, расположенный на github.com. Вторая команда клонирует сокращённую версию репозитория без истории, давая возможности загрузить обновления позже. Третья команда загружает архивы и распаковывает их.

После создания репозитория, дерево созданных портов будет размещено в директории /usr/dports, для манипуляции с пакетами можно использовать команду pkg. В настоящее время пока поддерживается только сборка портов DPort из исходных текстов, но в будущем будет предоставлена возможности использования готовых бинарных сборок, которые в отличие от pkgsrc, будут обновляться непрерывно. После создания бинарного репозитория, для новых пользователей будет рекомендовано использовать именно бинарные сборки и штатную систему установки бинарных обновлений, предоставляемую пакетным менеджером pkg.

В репозитории DPorts представлены только порты FreeBSD прошедшие проверку возможности сборки в DragonFly BSD и при необходимости содержат специфичные для DragonFly BSD патчи. В настоящее время через репозиторий DPorts для DragonFly BSD доступно 16500 портов (для FreeBSD доступно 24000, из них примерно 1000 специфична только для FreeBSD, 5000 не собираются в DragonFly BSD из-за проблем с зависимостями). В будущем планируется увеличить число собираемых для DragonFly BSD портов до 20 тысяч. Для сравнения, раньше через Pkgsrc поставлялось около 9000 пакетов, из которых примерно 2000 представляли разные версии одних и тех же приложений. Из пока не собираемых для DragonFly BSD важных портов, работу которых планируется обеспечить в первую очередь, отмечаются OpenJDK7, Xorg, KDE, XFCE, Gnome, GHC и Libreoffice. Так как в портах DPorts отсутствуют некоторых пакеты Pkgsrc и наоборот, допустимо одновременное использование обеих систем.