Поиск общих функций в сценариях сопровождающего Debian

У меня есть ряд общих функций, которые я хотел бы получить, поэтому они доступны в сценариях сопровождающего Debian (preinst/postinst/prerm/postrm), назовем их common.sh.

Если я добавлю "common.sh" в каталог DEBIAN, dpkg пожалуется:

dpkg-deb: warning: conffile '' is not a plain file
dpkg-deb: warning: ignoring 1 warning about the control file(s)

Тем не менее, пакет собирается правильно.

Когда я устанавливаю, трудно найти правильный каталог, где находится мой common.sh. В preinst, кажется, ищет /var/lib/dpkg/tmp.ciв то время как в postinst, кажется, ищет /var/lib/dpkg/info,

Я мог бы вставить файл common.sh в каталог tmp и удалить его позже, но у меня возникает ощущение, что файлы, установленные в ОС, должны оставаться до тех пор, пока dpkg не сможет их удалить.

Во всяком случае, мне интересно, каким будет истинный способ "debian" сделать это?

1 ответ

Решение

Preinst запускается из некоторого каталога, определенного реализацией, потому что пакет еще не распакован в нужное место в файловой системе.

Я почти уверен, что добавление дополнительных файлов в часть DEBIAN недопустимо для стандартных пакетов. Вы можете установить common.sh в файловую систему, обычно в /usr/share/yourpackagename/, и использовать его из сценариев postinst и prerm.

Это не работает для preinst и postrm, так как содержимое пакета недоступно.

Другие вопросы по тегам