Назад | Перейти на главную страницу

скрипт postinst в скрученном вручную .deb сообщается, что не найден

У меня был быстрый вопрос о dpkg / debian-izing. Я пытаюсь создать .deb(вручную - в основном в учебных целях), и я свернул ar-chive с control.tar.gz, data.tar.gz и debian-binary файлы.

Это скрученное вручную .deb отлично работает при регулярных установках, чистках и т. д. Однако когда я указываю --instdir во время установки, dpkg сообщает об ошибке "файл не найден" при попытке запустить postinst сценарий. Это не проблема prerm скрипт, кстати (который отлично работает).

Бег dpkg с участием --debug=2000 и глядя на /var/log/dpkg.log мало помогло.

Есть мысли о том, почему это могло происходить?

TIA.


Чтобы дать дополнительный контекст и задать еще один вопрос: я пытаюсь получить --instdir работать в основном потому, что каталог верхнего уровня, в который устанавливается содержимое моего пакета, также является точкой монтирования и при выполнении dpkg -P foo, dpkg пытается удалить этот каталог. Если кто-нибудь может предложить обходной путь для этого, это также послужит моей цели (т.е. мне не понадобится --instdir работать). Кроме того, этот каталог верхнего уровня не пуст, поэтому не знаю, почему dpkg пытается убери это. Помещение .placeholder файл там тоже не помог.

Как указано здесь (https://stackoverflow.com/questions/8921626/run-time-installation-directory-of-debian-package-contents) пути к динамическим каталогам не поддерживаются в пакетах deb с предварительно упакованными двоичными файлами. Но вы можете указать путь к каталогу не во время выполнения, а в вашем контрольном файле. А для упрощения создания пакетов вы можете использовать некоторые графические инструменты (например, упомянутые здесь: https://askubuntu.com/questions/8055/graphical-tool-for-creating-deb-packages).