The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

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


<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>
Ключевые слова: netbsd, packet, chroot, package, pkgsrc,  (найти похожие документы)
From: Михаил Сгибнев <mixa(@).dreamcatcher.ru> Date: 2006-09-13 15:27:11 Subject: Использование pkg_comp для сборки пакетов NetBSD в chroot
http://www.bsdfreak.org/modules/news/article.php?storyid=1

Перевод: Сгибнев Михаил

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

Совсем недавно, изучая список рассылки NetBSD, я видел упоминание о формировании пакетов в chroot и заинтересовался этим вопросом. Я уважаю pkgsrc, но всегда терпел неудобство от "make update", так как удаляются все зависимости модифицируемого пакета, что недопустимо в промышленных условиях.

С помощью общественности я установил 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

-- Sean Davis (dive at bsdfreak dot org)

<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>

Ваш комментарий
Имя:         
E-Mail:      
Заголовок:
Текст:





  Закладки на сайте
  Проследить за страницей
Created 1996-2017 by Maxim Chirkov  
ДобавитьРекламаВебмастеруГИД  
Hosting by Ihor