Пакет nginx по умолчанию создает символическую ссылку с именем default
в sites-enabled
dir, который указывает на файл конфигурации по умолчанию в sites-available
. В настоящее время я создаю пакет для приложения, которое находится поверх Nginx, и я хочу удалить или убрать default
символическую ссылку и замените ее конфигурационным файлом из моего пакета. В идеале, в случае удаления моего пакета, оригинал default
символическая ссылка будет восстановлена.
Я читал справочную страницу и примеры dpkg-divert
, но я не совсем понимаю, что он может это сделать. Это достижимо с dpkg-divert
, или я должен думать по-другому?
Если вы хотите перенаправить файл, принадлежащий другому пакету:
В вашем preinst перенаправьте файл подальше.
dpkg-divert --add --package $your_package_name --rename \
--divert /etc/nginx/sites-available/default.disabled \
/etc/nginx/sites-available/default
В вашем postrm перенаправьте файл обратно.
dpkg-divert --remove --package $your_package_name --rename \
/etc/nginx/sites-available/default
Это не сработает для символической ссылки /etc/nginx/sites-enabled/default
, потому что он создан nginx
postinst пакета, а не его часть. Поскольку символическая ссылка является частью пакета, вы можете просто переименовать ее с помощью mv
. Я не знаю, соответствует ли это политике упаковки Debian; если это важно для вас, так как это довольно специализированный вопрос, я рекомендую поискать или задать вопрос debian-devel.