某些 debian openjdk 软件包版本字符串中的波形符的含义是什么?

某些 debian openjdk 软件包版本字符串中的波形符的含义是什么?

正在阅读变更日志debian openjdk-8源码包我们看到有一个版本叫做openjdk-8 (8u45-b14-4)下一个是openjdk-8 (8u60~b22-1)

最后一个版本中波浪号的含义是什么?

答案1

Debian 软件包版本格式的官方参考位于Debian 政策手册。该格式旨在允许“看起来合理”的版本号具有明确定义(如果有些复杂)的比较关系,以决定一个版本何时比另一个版本更新。

在大多数情况下,比较是字符串的字典顺序比较。例如,1foo在 之前排序1ga。然而,数字序列是按数字顺序进行比较的,因此foo10bar排序在 后面foo9bar

按照字典顺序,字符串始终排在其前缀之前。波形符字符允许与此不同:始终在以 开头且后跟除 之外的字符的任何版本之前foo~bar排序。这通常用于 beta 版本:在 之前排序。我不知道为什么 OpenJDK 8 包似乎在和后缀之间交替。foofoo~8u60~b228u60-b~b

波形符后缀也用于各种向后移植。例如,如果 Debian 稳定版和测试版中存在相同版本的软件包,并且安全修复需要进入稳定版,那么稳定版中的软件包将具有与-2~deb1测试版相同的后缀(针对更新的库进行编译)将会有-2;这样软件包就是-1版本的升级,但是如果系统从稳定版升级到测试版,那么-2~deb1稳定版也会升级到-2测试版。官方向后移植用于相同目的,这样版本将升级到(如果该版本出现在主发行版中)。~bpoNUMBER4.2~bpo74.2

相关内容