Использование pkg_comp для сборки пакетов NetBSD в chroot (netbsd packet chroot package pkgsrc)

18 октября 2011 2523 admin

pkg_comp для сборки пакетов NetBSD в chroot


Эта статья - копия статьи на opennet.ru перевода Михаила Сгибнева:
http://www.opennet.ru/base/sys/pkg_comp_netbsd.txt.html
Вещь полезная и нужная. К тому же - оригинала уже нет по той ссылке, что указана на опеннете.
Так что - запостим себе в копилку.

Итак, pkg_comp для сборки пакетов NetBSD


В этой статье приводится краткое(но детальное) обьяснение, как использовать утилиту pkg_comp для сборки пакетов NetBSD в песочнице chroot не затрагивая уже установленные пакеты. Другими словами, вы можете собрать искомое, не удаляя зависимости в процессе сборки.

С помощью общественности я установил pkg_comp и теперь могу собирать пакеты, не затрагивая уже установленные. pkg_comp устанавливает chroot среду с полной инсталляцией NetBSD, именно туда помещаются пакеты и собираются бинарные файлы.

Вот что необходимо, для того, чтобы использовать pkg_comp:
  • Система с установленной NetBSD. Возможно, есть способ кросс-платформенной сборки пакетов, но я не пробовал.
  • Поддержка ядром файловой системы NULLFS. Она необходима для монтирования "реального" каталога пакетов внутрь chroot.
  • Актуальный pkgsrc
  • Релиз NetBSD или текущий снапшот, если вы не собираетесь собирать пакеты для X, то наличие X11 не обязательно.
  • Установленный pkg_comp(обнаружить его можно в pkgsrc/pkgtools/pkg_comp)
  • Файл конфигурации pkg_comp.

Так, теперь вкратце опишем, что необходимо сделать для приведения pkg_comp в рабочее состояние. Обратите внимание, что это работало у меня, возможно вы столкнетесь с проблемами.

Если вы устанавливаете пакеты, используя su, то создайте каталог pkg_comp в ~root и поместите в него файл default.conf. Если Вы используете sudo, помещаете файл в ~/pkg_comp, вместо ~root/pkg_comp. Этот файл будет содержать пути, такие как адрес песочницы.

Мой ~dive/pkg_comp/default.conf выглядит следующим образом:
DESTDIR=/var/chroot/pkgcomp
DISTRIBDIR=/nb/releasedir/i386
REAL_PKGSRC=/nb/pkgcomp_stuff/pkgsrc

Если вы не будете собирать пакеты, требующие X, то в этом же файле можно указать параметр "SETS_X11=no", если же вы используете X 4.x, то укажите следующую строку:
SETS_X11="xbase.tgz xcomp.tgz xetc.tgz xfont.tgz xserver.tgz"

В противном случае pkg_comp будет падать, ища старую версию X (xcontrib.tgz).

DESTDIR указывает на местоположение chroot песочницы, DISTRIBDIR указывает на местоположение релиза NetBSD(там можно найти binary/sets/base.tgz и др.) и REAL_PKGSRC указывает на местоположение дерева pkgsrc, которое Вы хотите использовать вместе с pkg_comp.

Начиная с этого момента я предполагаю, что вы используете sudo, как и я. Команды достаточно просты для адаптации под su или непосредственный вход как root.

Вам необходимо выполнить следующие команды:
  • sudo pkg_comp makeroot (это создаст песочницу chroot, извлечет необходимые наборы и установит pkgtools/digest)
  • sudo vi DESTDIR/etc/mk.conf (отредактируйте этот файл необходмым вам образом), если вы хотите собирать бинарные пакеты, то вам понадобятся эти два параметра:
  • DEPENDS_TARGET=package
    UPDATE_TARGET=package

Это гарантирует, что пакеты, собранные с помощью pkg_comp, будут добавлены как бинарные в /usr/pkgsrc/packages.

В принципе, это все, что касается сборки пакетов с pkg_comp - хотя Вы могли бы, конечно, захотеть использовать кое-что типа pkg_chk, чтобы формировать тонны пакетов сразу в chroot. Сделать это можно войдя в chroot (sudo pkg_comp chroot), установив pkgtools/pkg_chk, отредактировав файл конфигурации (также в chroot), с указанием путей pkgsrc по одному в строке и затем выполнить pkg_chk -a -k -C /path/to/packagelist.

Вы можете теперь собирать индивидуальные пакеты (или мета пакеты) с помощью команды sudo pkg_comp build category/package. Например, sudo pkg_comp build shells/tcsh соберет бинарный пакет tcsh, находящийся в /usr/pkgsrc/packages/shells. Для того, чтобы добавить бинарный пакет в систему, используюте pkg_add /path/to/package.tar.gz
  • 0

Другие новости по теме:

Другие новости по теме:

    Добавление комментария

    Имя:
    Пароль:
    Email:
    Код:
    captcha
    Введите код:

    Последнии комментарии
    КриптоПРО для NetBSD
    Автор Kurt (02.10.2025)
    The Minotaurus token is used to enter
    competitive ...
    КриптоПРО для NetBSD
    Автор Kari (01.10.2025)
    Hol lehet Exodermin vélemények olcsón venni?
    A hiva...> >
    КриптоПРО для NetBSD
    Автор Caridad (30.09.2025)
    Die Creme ex odermin cena w aptece ist
    ein Volltre...
    КриптоПРО для NetBSD
    Автор Lucio (29.09.2025)
    [INVALID URL BB CODE] es un gran producto contra l...
    КриптоПРО для NetBSD
    Автор Noella (29.09.2025)
    The Mtaur token is perfectly positioned for the ne...
     Популярные
       
    Календарь
    « Октябрь »
    Пн Вт Ср Чт Пт Сб Вс
    1 2 3 4 5
    6 7 8 9 10 11 12
    13 14 15 16 17 18 19
    20 21 22 23 24 25 26
    27 28 29 30 31
    Облако тегов
    Яндекс.Метрика