APT 求解器改进:巧妙解决手动安装包的删除问题

2025-05-27

本文介绍了作者改进 APT 包管理器求解器的方法。最初,手动安装的包被视为固定事实,自动安装的包为可选单元子句。然而,允许删除手动安装包后,求解器出现错误:它可能不必要地删除手动安装的包。作者通过在求解前假设所有可选单元子句,然后在求解过程中逐步撤销假设来解决此问题。这种方法虽然不是全局最优解,但在实践中能有效解决依赖性问题,避免了指数级复杂度的全局搜索。

阅读更多
开发

全新APT 3.0求解器

2024-05-14

APT 2.9.3 引入了代号为 solver3 的全新求解器的第一个迭代版本,现在可以通过 --solver 3.0 选项使用。新的求解器与旧求解器的工作原理根本不同,它是一种完全回溯的依赖关系解决算法,尽可能地推迟选择。solver3 还引入了新的功能,例如 --no-strict-pinning 选项,该选项指示求解器考虑软件包的所有版本,而不仅仅是候选版本,以及 apt why 命令,该命令可以告诉您安装软件包的确切原因。

阅读更多