Tengo un problema recurrente con los paquetes .deb personalizados y sus activadores. Hemos creado algunos "metapaquetes" para nuestras implementaciones para forzar y verificar algunas configuraciones. La idea es mantener muchos servidores con la "misma" configuración sin necesidad de verificar manualmente cada actualización. Llamémoslos como ejemplo:grafana-confyconfiguración de búsqueda elástica.
Para ejecutar los scripts de reconfiguración cuando el "paquete secundario" se actualiza, utilizamos los siguientes activadores.
- grafana-confdesencadenantes:
interest /usr/share/grafana
interest grafana-reconfigure
- configuración de búsqueda elásticadesencadenantes:
interest /usr/share/elasticsearch/bin
interest elastic-reconfigure
De vez en cuando, funciona como se esperaba, pero en algunos escenarios dpkg dice que hay un bucle de activación. En este caso, si elasticsearch
y grafana
se actualiza en la misma transacción, obtenemos los siguientes mensajes:
[...]
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
Hemos probado muchas variaciones de los desencadenantes, pero no entendemos qué está fallando allí. Leer documentos de Debian/deb dice que todo debería funcionar.
¿Alguien puede ayudarnos a comprender qué error (probablemente básico) nos estamos perdiendo? ¡Gracias de antemano!
Ps: El disparador con nombre grafana-reconfigure
se llama en el script postinst inferior degrafana-conf. Intentamos eliminar dicha llamada pero los bucles siguen apareciendo. Por supuesto, dpkg-trigger
nunca se llama dentro de la llamada "desencadenante". El disparador con nombre elastic-reconfigure
no se utiliza en absoluto.
Ps2: en algunos otros escenarios tengo un bucle como:grafana-conf -> grafana-conf -> grafana-conf