Руководство FreeBSD по созданию портов
Пред. | Глава 7. Продвинутые практики `pkg-plist` | След.

# 7.2. Пустые каталоги

## 7.2.1. Очистка пустых каталогов

Заставьте ваш порты удалять пустые каталоги при удалении. Обычно это достигается добавлением строк `@dirrm` для всех каталогов, которые создаются этим портом. Вам нужно удалить подкаталоги до того, как вы сможете удалить родительские каталоги.

     :
    lib/X11/oneko/pixmaps/cat.xpm
    lib/X11/oneko/sounds/cat.au
     :
    @dirrm lib/X11/oneko/pixmaps
    @dirrm lib/X11/oneko/sounds
    @dirrm lib/X11/oneko

Однако, иногда `@dirrm` будет выдавать ошибки, потому что другие порты используют тот же самый подкаталог. Вы можете использовать `@dirrmtry` для удаления только пустых каталогов без выдачи предупреждений.

    @dirrmtry share/doc/gimp

Эта команда не выведет никаких сообщений об ошибках и не вызовет аварийного завершения работы pkg_delete(1), даже если каталог ``${PREFIX}`/share/doc/gimp` не пуст из-за того, что другие порты установили сюда какие-то файлы.

## 7.2.2. Создание пустых каталогов

Пустым каталогам, создаваемым во время установки порта, нужно особое внимание. Они не будут созданы при установке пакета, потому что пакеты содержат только файлы, а pkg_add(1) создает для них каталоги по мере надобности. Чтобы убедиться, что пустой каталог создается при установке пакета, добавьте эту строку в `pkg-plist` перед соответствующей строкой `@dirrm`:

    @exec mkdir -p %D/share/foo/templates

Пред. | Начало | След.
Продвинутые практики `pkg-plist` | Уровень выше | Конфигурационные файлы

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