У меня повторяющаяся проблема с пользовательскими пакетами .deb и их триггерами. Мы создали несколько "метапакетов" для наших развертываний, чтобы принудительно проверить некоторые конфигурации. Идея состоит в том, чтобы сохранить много серверов с "той же" конфигурацией без необходимости проверять вручную каждое обновление. Давайте назовем их в качестве примера:графана-confиelasticsearch-конф.
Для выполнения сценариев реконфигурации при обновлении «дочернего пакета» мы используем следующие триггеры.
- графана-confтриггеры:
interest /usr/share/grafana
interest grafana-reconfigure
- elasticsearch-конфтриггеры:
interest /usr/share/elasticsearch/bin
interest elastic-reconfigure
Время от времени он просто работает так, как и ожидалось, но в некоторых сценариях dpkg говорит, что есть цикл триггера. В этом случае, если elasticsearch
и grafana
обновляется в той же транзакции, мы получаем следующие сообщения:
[...]
Processing triggers for ureadahead (0.100.0-21) ...
Processing triggers for dbus (1.12.16-2ubuntu2.3) ...
Setting up unrelated-package (1.2.1) ...
dpkg: cycle found while processing triggers:
chain of packages whose triggers are or may be responsible:
elasticsearch-conf -> grafana-conf
packages' pending triggers which are or may be unresolvable:
grafana-conf: /usr/share/grafana
elasticsearch-conf: /usr/share/elasticsearch/bin
initramfs-tools: update-initramfs
dpkg: error processing package grafana-conf (--configure):
triggers looping, abandoned
dpkg: cycle found while processing triggers:
chain of packages whose triggers are or may be responsible:
elasticsearch-conf -> elasticsearch-conf -> elasticsearch-conf
packages' pending triggers which are or may be unresolvable:
elasticsearch-conf: /usr/share/elasticsearch/bin
initramfs-tools: update-initramfs
dpkg: error processing package elasticsearch-conf (--configure):
triggers looping, abandoned
Processing triggers for initramfs-tools (0.136ubuntu6.7) ...
[...]
Errors were encountered while processing:
grafana-conf
elasticsearch-conf
Мы протестировали много вариантов триггеров, но не понимаем, что там не так. Чтение документации Debian/Deb говорит, что все должно работать.
Может кто-нибудь помочь мне/нам понять, какую (вероятно, элементарную) ошибку мы упускаем? Спасибо заранее!
P.S.: Именованный триггер grafana-reconfigure
вызывается в нижнем скрипте postinstграфана-conf. Мы пытались удалить такой вызов, но циклы продолжают появляться. Конечно, dpkg-trigger
никогда не вызывается внутри вызова "trigger". Named-trigger elastic-reconfigure
вообще не используется.
Ps2: В некоторых других сценариях у меня возникает такой цикл:grafana-conf -> grafana-conf -> grafana-conf