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

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


person srclosson    schedule 01.04.2014    source источник
comment
Что ж, я понял первую часть... conffile '' не был простым файлом, потому что в нем был один байт \n. Как только он был полностью очищен, это предупреждение исчезло... Так что это просто стандартный способ иметь общую функциональность между сценариями до и после установки...   -  person srclosson    schedule 01.04.2014


Ответы (1)


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

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

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

person Andreas Bombe    schedule 03.04.2014
comment
Спасибо, Андреас. Да, это то, что я в итоге сделал. Если мне нужен был функционал, я ждал postinst. - person srclosson; 10.07.2014