Как создать перемещаемый .deb-пакет со скриптами поддержки в нем?

Как создать перемещаемый .deb-пакет со скриптами поддержки в нем?

У меня есть пакет Debian со скриптом postinst, который создает символические ссылки. Когда я пытаюсь установить пакет .debс помощью --root(так как я хочу изменить место, где должен быть установлен пакет), я получаю эту ошибку:

dpkg (subprocess): unable to execute installed post-installation script: No such file or directory
subprocess installed post-installation script returned error exit status 2

dpkgпытается найти скрипт postinst в /var/lib/dpkg/info. Чего я не могу понять, так это то, что согласно dpkgстранице руководства использование option также --rootизменяет admindirна . Тогда почему он пытается найти скрипт postinst в ?newdir/var/lib/dpkg/var/lib/dpkg/info/

Я попробовал создать другой пакет, который не содержит этот скрипт поддержки, и установил его, используя ту же -i --root=newdirопцию, и это не выдало никакой ошибки.

Пожалуйста, дайте мне знать, как это сделать.

решение1

dpkgнашел скрипт postinst в /your/root/var/lib/dpkg/info— попытался запустить его. Похоже, проблема вотсутствует загрузчик: dpkgнаходит скрипт postinst, но затем получает ошибку «Нет такого файла или каталога» при попытке его выполнить, поскольку программа-интерпретатор для скрипта отсутствует (например, это скрипт Python, который python-minimalне установлен). При использовании альтернативного instdir интерпретатор должен присутствовать в instdir (dpkg выполняет chroot в instdir перед запуском скриптов пакетов).

Если интерпретатор не предоставляется пакетом с тегом Essential, убедитесь, что ваш пакет зависит от пакета, который предоставляет интерпретатор.

Связанный контент