Поиск общих функций в сценариях сопровождающего 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, так как содержимое пакета недоступно.