Если ваш порт устанавливает конфигурационные файлы в
каталог PREFIX/etc (или куда-то еще),
не делайте их простого перечисления в
файле pkg-plist. Это приведёт к тому, что
по команде pkg delete или при новой
установке файлы, тщательно отредактированные и настроенные
пользователем, будут уничтожены.
Вместо этого установите файл(ы) с примерами с расширением
filename.sample. Затем скопируйте файл с
примером на место настоящего файла конфигурации, если таковой
ещё не существует. При деинсталляции удаляйте файл
конфигурации только в том случае, если он идентичен файлу с
расширением .sample. Вам нужно управлять
этим в Makefile и в
pkg-plist (для установки из
пакета).
Пример части Makefile:
post-install:
@if [ ! -f ${PREFIX}/etc/orbit.conf ]; then \
${CP} -p ${PREFIX}/etc/orbit.conf.sample ${STAGEDIR}${PREFIX}/etc/orbit.conf ; \
fiДобавьте по три строки в pkg-plist для
каждого конфигурационного файла, как показано ниже:
@unexec if cmp -s %D/etc/orbit.conf.sample %D/etc/orbit.conf; then rm -f %D/etc/orbit.conf; fi etc/orbit.conf.sample @exec if [ ! -f %D/etc/orbit.conf ] ; then cp -p %D/%F %B/orbit.conf; fi
Данные строки являются упорядоченными. На этапе удаления
файл с примером сравнивается с рабочим конфигурационным файлом.
Полное совпадение означает отсутствие каких-либо изменений в
рабочем файле со стороны пользователя, и следовательно этот
файл может быть безопасно удалён. Так как файл с примером всё
ещё должен существовать для сравнения, строка
@unexec следует перед именем файла с
примером конфигурации. На этапе установки, если рабочий файл
конфигурации отсутствует, он копируется из файла с примером.
Файл с примером обязательно должен быть установлен до операции
копирования, поэтому строка @exec следует
после имени файла с примером конфигурации.
Для получения дополнительного отладочного вывода на экран
можно временно удалить параметр -s из
команды cmp(1).
Для получения дополнительной инфорации по использованию
%D и прочих маркеров подстановки обратитесь
к странице Справочника pkg-create(8).
Если существует действительно стоящая причина не
устанавливать рабочий файл конфигурации по умолчанию, уберите
строку @exec из
pkg-plist и добавьте сообщение, указывающее на
то, что пользователь обязан скопировать и отредактировать этот
файл перед тем, как программное обеспечение начнёт
работать.
Этот, и другие документы, могут быть скачаны с https://download.freebsd.org/ftp/doc/.
По вопросам, связанным с FreeBSD, прочитайте
документацию прежде чем писать в
<questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите в рассылку
<doc@FreeBSD.org>.