Нужен совет (debian, dpkg)

Jun 09, 2017 16:45

Коллеги-линуксоиды!

Вопрос к знакомым с debian maintainer-скриптами


Имеется deb-пакет, в котором, помимо прочего, имеется файл somedir/file1
Устанавливается новая версия пакета, в котором этот файл мог измениться (а мог и не измениться).

Имеется утилита If_File_Changed_Do_Magic(oldfile, newfile)
Для того, чтобы утилита работала, ей нужны и старый, и новый файл (важен не только факт различия, но и содержимое обоих файлов).
Утилита выполняет внешние по отношению к пакету действия, файлы пакета не меняет и на успешность установки не влияет.

Если я правильно понимаю, то:
- в момент запуска (oldpkg)->postrm upgrade $new_version, файлы новой версии пакета уже распакованы,
- файлы старой версии пакета еще не удалены, а где-то забэкаплены (поскольку возможен сценарий abort-upgrade с откатом к предыдущему состоянию пакета)

Следовательно, в скрипт postrm можно включить вызов примерно такого вида:
If_File_Changed_Do_Magic "$dpkg-backup-place/somedir/file1" "$packagedir/somedir/file1"
или
If_File_Changed_Do_Magic "$packagedir/file1.$backup-extension" "$packagedir/somedir/file1"

Вопрос: где находится этот самый временный бэкап?
Или - как присваиваются временные расширения?

То ли я плохо искал, то ли этот вопрос вообще не отражен в документации.
(Или оно варьируется от сборки к сборке? Или зависит от каких-то настроек?)

В принципе, можно делать свой бэкап проверяемых файлов на этапе (old)->prerm upgrade и удалять его в postinst configure, но не хочется плодить копий файлов сверх существующих

Решение ищу для debian >= jessie.

наработе

Previous post Next post
Up