在 Oracle® Solaris 11.2 中使用映像包管理系统打包和交付软件

退出打印视图

更新时间: 2014 年 7 月
 
 

运行解析器

解析器构成了计算引擎的核心,而 pkg(5) 会使用此计算引擎,并根据映像中的约束和用于安装的任何新软件包引入的约束,来确定可以安装、更新或删除的软件包。

此问题是布尔型可满足性问题的一个示例,可以通过 SAT 解析器解决。

针对所有软件包的各种可能选择均指定了布尔变量,并且在那些软件包、任何所需的软件包等之间的所有相关项均以合取范式强制转换为布尔表达式。

生成的表达式集将传递到 MiniSAT。如果 MiniSAT 找不出任何解决方案,则错误处理代码会尝试遍历已安装的软件包集和已尝试的操作,并输出每个可能的选择被排除的原因。

如果当前已安装的软件包集符合要求,而不是其他软件包集符合要求,则 pkg 会报告无需执行任何操作。

如前所述,错误消息生成和特征是通过 pkg 的输入确定的。在发出到 pkg 的命令中提供尽可能具体的信息可以生成最有用的错误消息。

如果 MiniSAT 找到了一个可能的解决方案,优化阶段将开始。