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

    Последнии комментарии
    движок для сайта бесплатные движки для сайтов
    Автор Cornell (18.07.2025)
    I am sure this paragraph has touched all the inter...
    движок для сайта бесплатные движки для сайтов
    Автор Tracey (18.07.2025)
    Excellent post. I was checking continuously this b...
    движок для сайта бесплатные движки для сайтов
    Автор vovan casino онлайн (18.07.2025)
    My spouse and I stumbled over here by a different...
    движок для сайта бесплатные движки для сайтов
    Автор vovan casino онлайн (18.07.2025)
    My spouse and I stumbled over here by a different...
    движок для сайта бесплатные движки для сайтов
    Автор ramenbet casino (18.07.2025)
    I will right away grab your rss feed as I can not ...
    движок для сайта бесплатные движки для сайтов
    Автор ramenbet casino (18.07.2025)
    I will right away grab your rss feed as I can not ...
    движок для сайта бесплатные движки для сайтов
    Автор Вован бесплатные спины (17.07.2025)
    I'm gone to inform my little brother, that he shou...
    движок для сайта бесплатные движки для сайтов
    Автор Stan (17.07.2025)
    I am now not certain the place you're getting your...
    движок для сайта бесплатные движки для сайтов
    Автор Ezekiel (16.07.2025)
    Islamic University of Al Madinah is unrelated to U...
    движок для сайта бесплатные движки для сайтов
    Автор Meri (16.07.2025)
    I know this web page gives quality based articles ...
     Популярные
       
    Календарь
    « Июль »
    Пн Вт Ср Чт Пт Сб Вс
    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
    Облако тегов
    Яндекс.Метрика