Заставьте ваш порты удалять пустые каталоги при удалении. Обычно это достигается добавлением строк @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 не пуст из-за того, что другие порты установили сюда какие-то файлы.
Пустым каталогам, создаваемым во время установки порта, нужно особое внимание. Они не будут созданы при установке пакета, потому что пакеты содержат только файлы, а pkg_add(1) создает для них каталоги по мере надобности. Чтобы убедиться, что пустой каталог создается при установке пакета, добавьте эту строку в pkg-plist перед соответствующей строкой @dirrm:
@exec mkdir -p %D/share/foo/templates
Пред. | Начало | След. |
Продвинутые практики pkg-plist | Уровень выше | Конфигурационные файлы |