如何防止 dpkg 触发循环?

如何防止 dpkg 触发循环?

我构建了一个 debian 软件包,它使用 生成菜单文件update-menus,但有多种语言版本。它通过 dpkg 的触发器功能激活:“interest /usr/share/menu”。不幸的是,它提供了以下输出。如果我省略 ,它会运行良好update-menus,但在这种情况下它会失去其目的。如何编写一个作为 dpkg 触发器激活并调用 的脚本update-menus

Processing triggers for man-db ...
Processing triggers for icewm-menu-multilang-support ...
dpkg: cycle found while processing triggers:
 chain of packages whose triggers are or may be responsible:
  icewm-menu-multilang-support -> menu
 packages' pending triggers which are or may be unresolvable:
  icewm-menu-multilang-support: /usr/share/menu
  hicolor-icon-theme: /usr/share/icons/hicolor
  desktop-file-utils: /usr/share/applications
  menu: /usr/share/menu
dpkg: error processing icewm-menu-multilang-support (--unpack):
 triggers looping, abandoned
Processing triggers for menu ...
Processing triggers for hicolor-icon-theme ...
Processing triggers for desktop-file-utils ...
Errors were encountered while processing:
 icewm-menu-multilang-support
E: Sub-process /usr/bin/dpkg returned an error code (1)

答案1

update-menus无论如何都会被调用,因为menu注册的兴趣和你一样。你只需要确保你的触发器先运行。触发器遵循依赖顺序,因此Enhances: menu包控制文件上的(或另一个方向的推荐:)可能会起作用。

相关内容