Ich habe ein wiederkehrendes Problem mit benutzerdefinierten .deb-Paketen und ihren Triggern. Wir haben einige „Metapakete“ für unsere Bereitstellungen erstellt, um einige Konfigurationen zu erzwingen und zu überprüfen. Die Idee besteht darin, viele Server mit der „gleichen“ Konfiguration zu halten, ohne sie bei jedem Update manuell überprüfen zu müssen. Nennen wir sie als Beispiel:grafana-confUndelasticsearch-conf.
Um die Neukonfigurationsskripte auszuführen, wenn das „untergeordnete Paket“ aktualisiert wird, verwenden wir die folgenden Auslöser.
- grafana-conflöst aus:
interest /usr/share/grafana
interest grafana-reconfigure
- elasticsearch-conflöst aus:
interest /usr/share/elasticsearch/bin
interest elastic-reconfigure
Von Zeit zu Zeit funktioniert es wie erwartet, aber in manchen Fällen meldet dpkg, dass eine Triggerschleife vorliegt. In diesem Fall erhalten wir die folgenden Meldungen, wenn elasticsearch
und grafana
bei derselben Transaktion aktualisiert werden:
[...]
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
Wir haben viele Variationen der Trigger getestet, aber wir verstehen nicht, was da schief läuft. Laut Debian/Deb-Dokumentation sollte alles funktionieren.
Kann mir/uns jemand helfen zu verstehen, welchen (wahrscheinlich grundlegenden) Fehler wir übersehen haben? Vielen Dank im Voraus!
P.S.: Der Named-Trigger grafana-reconfigure
wird im unteren Postinst-Skript vongrafana-conf. Wir haben versucht, einen solchen Aufruf zu entfernen, aber die Schleifen tauchen immer wieder auf. Natürlich dpkg-trigger
wird es nie innerhalb eines „Trigger“-Aufrufs aufgerufen. Benannte Trigger elastic-reconfigure
werden überhaupt nicht verwendet.
Ps2: In einigen anderen Szenarien habe ich eine Schleife wie:grafana-conf -> grafana-conf -> grafana-conf