Логин:
Пароль:
Поиск:

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

18 октября 20112467admin
    

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:

Последнии комментарии
Как конвертировать LSD в DSL
Автор testforasong (28.01.2024)
Здравствуйте, не нахожу байт за номером 5A9DD. Ест...
Как сменить версию php через .htacces
Автор anon (19.09.2022)
Спасибо!
Хоть у кого-то подробное объяснение!
Обновление NetBSD до STABLE
Автор anon (12.09.2022)
Кто-то еще пользуется этой системой?)
FreeSWITCH on NetBSD
Автор admin (27.11.2020)
2default
круто! хоть какой-то свежак)
да, netbsd.tea...
FreeSWITCH on NetBSD
Автор default (24.11.2020)
admin, Собрал, запустил, таки 1.8.7. С ним вполне ...
FreeSWITCH on NetBSD
Автор admin (20.11.2020)
Пробуем последнюю отсюда: https://files.freeswitch...
FreeSWITCH on NetBSD
Автор default (20.11.2020)
admin, Давай скооперируемся. И мне нужен. На FreeB...
i3lock
Автор admin (20.11.2020)
аха, спасибо. Исправили)
FreeSWITCH on NetBSD
Автор admin (20.11.2020)
default, если дело только в openssl можно старую в...
FreeSWITCH on NetBSD
Автор admin (20.11.2020)
default,
Я как-то скомпилировал FS, но версия была...
Календарь
« Апрель »
Пн Вт Ср Чт Пт Сб Вс
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
FreeServer.su