Первым делом убедитесь, что ваш порт практически полностью
завершён и осталось создать только pkg-plist
.
Далее создайте временное дерево каталогов, куда может быть установлен ваш порт, и установите все зависимости.
#
mkdir /var/tmp/`make -V PORTNAME`
#
mtree -U -f `make -V MTREE_FILE` -d -e -p /var/tmp/`make -V PORTNAME`
#
make depends PREFIX=/var/tmp/`make -V PORTNAME`
Сохраните структуру каталогов в новом файле.
#
(cd /var/tmp/`make -V PORTNAME` && find -d * -type d) | sort > OLD-DIRS
Создайте пустой файл pkg-plist
:
#
:>pkg-plist
Если ваш порт принимает во внимание PREFIX
(а он
должен это делать), то тогда вы можете установить порт и создать список
упаковки.
#
make install PREFIX=/var/tmp/`make -V PORTNAME`
#
(cd /var/tmp/`make -V PORTNAME` && find -d * \! -type d) | sort > pkg-plist
Кроме того, в список упаковки вы должны добавить все вновь созданные каталоги.
#
(cd /var/tmp/`make -V PORTNAME` && find -d * -type d) | sort | comm -13 OLD-DIRS - | sort -r | sed -e 's#^#@dirrm #' >> pkg-plist
И наконец, вам нужно вручную отшлифовать список упаковки; его
создание автоматизировано не полностью. Страницы
справочной системы должны быть перечислены в файле
Makefile
порта в переменных
MAN
, а не в списке
упаковки. Пользовательские конфигурационные файлы должны быть удалены
или быть установлены как
n
filename.sample
.
Файл info/dir
включать в список не нужно, но
должны быть добавлены соответствующие строчки
install-info
, так, как это описано в разделе о файлах в формате info. Все
библиотеки, устанавливаемые портом, должны быть перечислены так, как
это описано в разделе о динамических библиотеках.
Как альтернативу, можно использовать скрипт plist
из /usr/ports/Tools/scripts/
для автоматического
построения списка упаковки. Скрипт plist
- это
сценарий на Ruby, который автоматизирует
большинство ручных операций, изложенных в предыдущем параграфе.
Первый шаг такой же как выше: взять
первые три строки,
mkdir
, mtree
и
make depends
. Затем собрать и установить
порт:
#
make install PREFIX=/var/tmp/`make -V PORTNAME`
И позволить plist
создать файл
pkg-plist
:
#
/usr/ports/Tools/scripts/plist -Md -m `make -V MTREE_FILE` /var/tmp/`make -V PORTNAME` > pkg-plist
Список упаковки всё ещё должен быть подчищен вручную как описано выше.
Для первоначального создания pkg-plist
можно
использовать другой инструмент ports-mgmt/genplist. Как и с прочими
автоматизированными инструментами, получаемый pkg-plist
следует проверить и при необходимости отредактировать вручную.
Этот, и другие документы, могут быть скачаны с http://ftp.FreeBSD.org/pub/FreeBSD/doc/.
По вопросам, связанным с FreeBSD, прочитайте
документацию прежде чем писать в
<questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите в рассылку
<doc@FreeBSD.org>.