Deb 包觸發循環

Deb 包觸發循環

我經常遇到自訂 .deb 套件及其觸發器的問題。我們為我們的部署製作了一些“元資料包”,以強制和檢查一些配置。這個想法是讓許多伺服器保持「相同」的配置,而不需要手動檢查每個更新。讓我們以它們為例:grafana會議彈性搜尋會議

為了在「子包」更新時執行重新配置腳本,我們使用以下觸發器。

  • grafana會議觸發器:
interest /usr/share/grafana
interest grafana-reconfigure

  • 彈性搜尋會議觸發器:
interest /usr/share/elasticsearch/bin
interest elastic-reconfigure

有時,它會按預期工作,但是,在某些情況下 dpkg 會說存在觸發循環。在這種情況下,如果elasticsearchgrafana在同一筆事務上更新,我們會收到以下訊息:

[...]
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 文件說一切都應該有效。

有人可以幫助我/我們理解我們錯過了什麼(可能是基本的)錯誤嗎?預先感謝您!

grafana-reconfigurePs:在底部 postinst 腳本中呼叫了命名觸發器grafana會議。我們已嘗試刪除此類調用,但循環仍然出現。當然,dpkg-trigger永遠不會在「觸發」呼叫內部呼叫。命名觸發器elastic-reconfigure根本沒有被使用。

Ps2:在其他一些場景中,我有一個循環,例如:grafana-conf -> grafana-conf -> grafana-conf

相關內容