Руководство FreeBSD по созданию портов
Пред. | Глава 3. Быстрое портирование | След.

# 3.2. Создание информационных файлов

Имеется два информационных файла, которые требуются для любого порта, вне зависимости от того, является ли он пакетом или нет. Это `pkg-descr` и `pkg-plist`. Префикс `pkg-` отличает их от других файлов.

## 3.2.1. `pkg-descr`

Это более подробное краткое описание порта. От одного до нескольких абзацев, кратко описывающих, что представляет собой порт, будет достаточно.

> Замечание: Это не руководство и не подробнейшее описание того, как использовать или компилировать порт! Пожалуйста, будьте внимательны при копировании текста из `README` или страниц справочника; слишком часто они не являются кратким описанием порта или имеют неудобный формат (например, страницы справочника выровнены пробелами). Если портируемое приложение имеет официальную страничку Интернет, укажите ее здесь. Перед одним из сайтов добавьте слово `WWW:` для того, чтобы вспомогательные утилиты работали правильно.

Рекомендуется, чтобы вы указали свое имя в конце этого файла, как здесь:

    This is a port of oneko, in which a cat chases a poor mouse all over
    the screen.
     :
    (etc.)

    WWW: http://www.oneko.org/

    - Satoshi
    asami@cs.berkeley.edu

## 3.2.2. `pkg-plist`

Здесь перечисляются все файлы, устанавливаемые портом. Его также называют ``списком для упаковки'', потому что пакет генерируется упаковкой файлов, которые здесь указаны. Имена путей указываются относительно установочного префикса (обычно `/usr/local` или `/usr/X11R6`). Если вы используете переменные `MAN`n`` (а вы должны это делать), то указывать страницы справочника здесь не нужно.

Вот маленький пример:

    bin/oneko
    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(1) с подробным описанием формата списка упаковки.

> Замечание: В списке вы должны указать все файлы, но не каталоги. Кроме того, если порт создает каталоги сам на этапе установки, нужно добавить директивы `@dirrm` в подходящие места для удаления их при удалении порта.

> Рекомендуется, чтобы имена файлов в этом списке были отсортированы в алфавитном порядке. Это позволит значительно облегчить сверку изменений при обновлении порта.

> Создание списка упаковки вручную может оказаться весьма трудоёмкой задачей. Если порт устанавливает большое количество файлов, раздел об автоматическом построении списка упаковки может помочь сэкономить время.

Существует только одно исключение, когда у порта может отсутствовать `pkg-plist`. Если порт устанавливает лишь несколько файлов, а возможно, и каталогов, то они могут быть перечислены в переменных `PLIST_FILES` и `PLIST_DIRS`, соответственно, внутри файла `Makefile` порта. К примеру, мы можем обойтись без файла `pkg-plist` у приведённого выше порта `oneko`, добавив следующие строки в `Makefile`:

    PLIST_FILES=   bin/oneko \
            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` не должна задаваться, если порт не устанавливает никаких каталогов.

Обратной стороной такого способа перечисления файлов и каталогов порта является невозможность использования последовательностей команд, описанных в pkg_create(1). Поэтому он подходит для простых портов, что делает их ещё более простыми. Одновременно с этим положительным моментом является уменьшение количества файлов в коллекции портов. Пожалуйста, подумайте над использованием этой техники, прежде чем создавать `pkg-plist`.

Далее мы увидим, как можно использовать файлы `pkg-plist` и `PLIST_FILES` выполнения более сложных задач.

Пред. | Начало | След.
Быстрое портирование | Уровень выше | Создание файла с контрольной суммой

По вопросам связанным с системой портов для FreeBSD, пишите по адресу <ports@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите по адресу <doc@FreeBSD.org>.