Имеется два информационных файла, которые требуются для
любого порта, вне зависимости от того, является ли он пакетом
или нет. Это pkg-descr
и
pkg-plist
. Префикс
pkg-
отличает их от других файлов.
Это более подробное краткое описание порта. От одного до нескольких абзацев, кратко описывающих, что представляет собой порт, будет достаточно.
Это не руководство и не
подробнейшее описание того, как использовать или
компилировать порт! Пожалуйста, будьте
внимательны при копировании текста из
README
или страниц справочника
; слишком часто они не являются кратким
описанием порта или имеют неудобный формат (например,
страницы справочника выровнены пробелами, что особенно
плохо смотрится с моноширинными шрифтами).
Хорошо составленный pkg-descr
описывает порт достаточно полно, чтобы пользователю не
приходилось сверяться с документацией или посещать вебсайт
для понимания того, что делает данное программное
обеспечение, чем оно может быть полезно или какие хорошие
функции у него имеются. Упоминание про определённые
требования, такие как используемый графический
инструментарий, тяжёлые зависимости, окружение для запуска
или используемый язык программирования помогут пользователям
определиться, будет ли этот порт для них работать.
Включите сюда URL официальной домашней страницы Интернет.
Перед одним из сайтов (выберите
основной) добавьте WWW:
(с последующим
единичным пробелом) для того, чтобы вспомогательные утилиты
работали правильно. Если URI является корнем сайта или
каталогом, то значение должно быть дополнено косой
чертой.
Если указанная для порта веб-страница не доступна, попытайтесь сперва поискать, был ли официальный сайт перемещён, переименован или размещён в другом месте.
Следующий пример показывает, как должен выглядеть ваш
pkg-descr
:
This is a port of oneko, in which a cat chases a poor mouse all over the screen. : (etc.) WWW: http://www.oneko.org/
Здесь перечисляются все файлы, устанавливаемые портом.
Его также называют <<списком для упаковки>>,
потому что пакет генерируется упаковкой файлов, которые здесь
указаны. Имена путей указываются относительно установочного
префикса (обычно /usr/local
). Если порт
во время установки создает каталоги, убедитесь, что добавлены
строки @dirrm
для удаления каталогов при
удалении пакета.
Вот маленький пример:
bin/oneko man/man1/oneko.1.gz lib/X11/app-defaults/Oneko lib/X11/oneko/cat1.xpm lib/X11/oneko/cat2.xpm lib/X11/oneko/mouse.xpm @dirrm lib/X11/oneko
Обратитесь к странице справочной системы по команде pkg-create(8) с подробным описанием формата списка упаковки.
Рекомендуется, чтобы имена файлов в этом списке были отсортированы в алфавитном порядке. Это позволит значительно облегчить сверку изменений при обновлении порта.
Создание списка упаковки вручную может оказаться весьма трудоёмкой задачей. Если порт устанавливает большое количество файлов, раздел об автоматическом построении списка упаковки может помочь сэкономить время.
Существует только одно исключение, когда у порта может
отсутствовать pkg-plist
. Если порт
устанавливает лишь несколько файлов, а возможно, и каталогов,
то они могут быть перечислены в переменных
PLIST_FILES
и
PLIST_DIRS
, соответственно, внутри файла
Makefile
порта. К примеру, мы можем
обойтись без файла pkg-plist
у
приведённого выше порта oneko
, добавив
следующие строки в Makefile
:
PLIST_FILES= bin/oneko \ man/man1/oneko.1.gz \ lib/X11/app-defaults/Oneko \ lib/X11/oneko/cat1.xpm \ lib/X11/oneko/cat2.xpm \ lib/X11/oneko/mouse.xpm PLIST_DIRS= lib/X11/oneko
Конечно, переменная PLIST_DIRS
не
должна задаваться, если порт не устанавливает никаких
каталогов.
Несколько портов могут совместно использовать общий
каталог. В этом случае PLIST_DIRS
следует заменить на PLIST_DIRSTRY
, так
чтобы каталог удалялся только если он пуст, а иначе
игнорировался. Использование PLIST_DIRS
и PLIST_DIRSTRY
аналогично
@dirrm
и @dirrmtry
в
pkg-plist
, описание которых входит в
Раздел 7.2.1, <<Очистка пустых каталогов>>.
Обратной стороной такого способа перечисления файлов и
каталогов порта является невозможность использования
последовательностей команд, описанных в pkg-create(8).
Поэтому он подходит для простых портов, что делает их ещё
более простыми. Одновременно с этим положительным моментом
является уменьшение количества файлов в коллекции портов.
Пожалуйста, подумайте над использованием этой техники, прежде
чем создавать pkg-plist
.
Далее мы увидим, как можно использовать файлы
pkg-plist
и
PLIST_FILES
выполнения более сложных задач.
Этот, и другие документы, могут быть скачаны с https://download.freebsd.org/ftp/doc/.
По вопросам, связанным с FreeBSD, прочитайте
документацию прежде чем писать в
<questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите в рассылку
<doc@FreeBSD.org>.