Использование 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
    Введите код:

    Последнии комментарии
    движок для сайта бесплатные движки для сайтов
    Автор Shelby (31.10.2025)
    We are a group of volunteers and starting a new sc...
    Как присвоить несколько IP адресов, и диапазон IP адресов сетевому интерфейсу в Debian
    Автор Vicente (30.10.2025)
    Спасибо за помощь в растаможке, вы реально знаете ...
    КриптоПРО для NetBSD
    Автор Emmett (30.10.2025)
    А если товар нужно доставить в другой город,
    ...
    Как присвоить несколько IP адресов, и диапазон IP адресов сетевому интерфейсу в Debian
    Автор Antonia (30.10.2025)
    Очень удобно, что можно заказать сборный груз и сэ...
    КриптоПРО для NetBSD
    Автор Vernon (30.10.2025)
    А кто-нибудь знает, какие сроки доставки у них обы...
    КриптоПРО для NetBSD
    Автор Clarice (30.10.2025)
    Быстро нашли нужный товар в Китае и помогли с дост...
    КриптоПРО для NetBSD
    Автор Meredith (30.10.2025)
    Доставка в Москву прошла просто отлично,
    всё ...
    КриптоПРО для NetBSD
    Автор Mitzi (30.10.2025)
    А кто-нибудь уже работал с ними?

    Интере...
    КриптоПРО для NetBSD
    Автор Hamish (30.10.2025)
    А если нужно доставить хрупкий товар,
    они сп...
    движок для сайта бесплатные движки для сайтов
    Автор Torri (30.10.2025)
    Aw, this was an exceptionally nice post. Taking a ...
     Популярные
       
    Календарь
    « Ноябрь »
    Пн Вт Ср Чт Пт Сб Вс
    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
    Облако тегов
    Яндекс.Метрика