Файлы доступа debian пакета из postinst сценария

Действительно ли это возможно, для доступа к файлам Debian-пакета из его postinst сценария?

обычно, я использовал бы что-то как dpkg -c path/to/deb, но вызов apt/dpkg в postinst сценарии не возможен, правильно?

В настоящее время я устанавливаю использование пакета dpkg -i path/to/deb, позже пакет должен предлагаться репозиторием.

Чего я пытаюсь достигнуть:

dpkg -i myPackage_1.0-0_all.deb

распаковывает файлы (особенно *.specialTag)

postinst запускает скрипт, который работает со всеми *.specialTag файлами в системе (использование find / -name *.specialTag).

Это хорошо работает, при отсутствии старых *.specialTag файлов в системе, потому что: Если я удаляю *.specialTag файл из myPackage_1.0-0_all.deb, создайте новую версию myPackage_1.0-1_all.deb и установите его, затем *.specialTag файл находится все еще в системе. Мой postinst-сценарий будет находить его и работать с ним.

Таким образом, то, что я имею в виду, не должно циклично выполняться через все файлы в системе, но только через тех, в которых я приношу со мной myPackage_1.0-1_all.deb

Но затем я должен назвать dpkg/apt в postinst-сценарии

Спасибо.

2
задан 2 November 2018 в 07:47

2 ответа

Для получения списка файлов, установленных пакетом, можно использовать dpkg -L YOUR-PACKAGE-NAME, и это работает, как Вы ожидали бы во время postinst. (Таким образом, если Ваш пакет называют example, команда dpkg -L example.)

dpkg -L, кажется, работает, даже когда /var/lib/dpkg/lock lockfile заблокирован, и в любом случае блокировка не сохранена во время postinst.

можно также использовать файл /var/lib/dpkg/info/YOUR-PACKAGE-NAME.list, который dpkg создает во время установки пакета прежде, чем выполнить postinst. (Таким образом, если Ваш пакет называют example, файл /var/lib/dpkg/info/example.list.)

Оба из вышеупомянутого дает список всех файлов (и все родительские каталоги до корня, который Вы, возможно, должны отфильтровать в зависимости от того, что Вы делаете), которые содержатся в пакете.

4
ответ дан 2 December 2019 в 02:16

Насколько я считал этот схематика , файлы должны быть полностью распакованы на postinst. Таким образом, если бы Вы получили файл usr/share/foo/script.sh в пакете, то необходимо смочь получить доступ к этому сценарию в /usr/share/foo/script.sh:

postinst debian mainainter schematic

0
ответ дан 2 December 2019 в 02:16

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

Похожие вопросы: