Имеется два информационных файла, которые требуются для любого
порта, вне зависимости от того, является ли он пакетом или нет. Это
pkg-descr
и pkg-plist
.
Префикс pkg-
отличает их от других файлов.
Это более подробное краткое описание порта. От одного до нескольких абзацев, кратко описывающих, что представляет собой порт, будет достаточно.
Это не руководство и не подробнейшее
описание того, как использовать или компилировать порт!
Пожалуйста, будьте внимательны при копировании текста
из README
или страниц
справочника; слишком часто они не являются кратким
описанием порта или имеют неудобный формат (например, страницы
справочника выровнены пробелами). Если портируемое приложение
имеет официальную страничку Интернет, укажите ее здесь.
Перед одним из сайтов добавьте слово
WWW:
для того, чтобы вспомогательные утилиты
работали правильно.
Следующий пример показывает, как должен выглядеть ваш
pkg-descr
:
Здесь перечисляются все файлы, устанавливаемые портом. Его
также называют «списком для упаковки», потому что
пакет генерируется упаковкой файлов, которые здесь указаны.
Имена путей указываются относительно установочного префикса
(обычно /usr/local
).
Если вы используете переменные
MAN
(а вы должны
это делать), то указывать страницы справочника здесь не
нужно. Если порт во время установки создает каталоги, убедитесь,
что добавили строку n
@dirrm
для удаления
каталогов при удалении пакета.
Вот маленький пример:
Обратитесь к странице справочной системы по команде pkg_create(1) с подробным описанием формата списка упаковки.
Рекомендуется, чтобы имена файлов в этом списке были отсортированы в алфавитном порядке. Это позволит значительно облегчить сверку изменений при обновлении порта.
Создание списка упаковки вручную может оказаться весьма трудоёмкой задачей. Если порт устанавливает большое количество файлов, раздел об автоматическом построении списка упаковки может помочь сэкономить время.
Существует только одно исключение, когда у порта может
отсутствовать pkg-plist
. Если порт
устанавливает лишь несколько файлов, а возможно, и каталогов, то
они могут быть перечислены в переменных
PLIST_FILES
и PLIST_DIRS
,
соответственно, внутри файла Makefile
порта.
К примеру, мы можем обойтись без файла
pkg-plist
у приведённого выше порта
oneko
, добавив следующие строки в
Makefile
:
Конечно, переменная PLIST_DIRS
не должна
задаваться, если порт не устанавливает никаких каталогов.
Обратной стороной такого способа перечисления файлов и
каталогов порта является невозможность использования
последовательностей команд, описанных в pkg_create(1).
Поэтому он подходит для простых портов, что делает их ещё более
простыми. Одновременно с этим положительным моментом является
уменьшение количества файлов в коллекции портов. Пожалуйста,
подумайте над использованием этой техники, прежде чем создавать
pkg-plist
.
Далее мы увидим, как можно использовать файлы
pkg-plist
и PLIST_FILES
выполнения более сложных
задач.
Этот, и другие документы, могут быть скачаны с http://ftp.FreeBSD.org/pub/FreeBSD/doc/.
По вопросам, связанным с FreeBSD, прочитайте
документацию прежде чем писать в
<questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите в рассылку
<doc@FreeBSD.org>.