某些 debian openjdk 包版本字符串中的波浪号是什么意思?

Ort*_*kni 10 version debian deb

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

最后一个版本中的波浪号是什么意思?

Gil*_*il' 16

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

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

对于字典顺序,字符串总是排在其前缀之前。波浪符号允许从一个偏差:foo~bar总是整理之前foo,以及在此之前,开头任何版本foo,然后以外的字符~。这通常用于测试版:8u60~b22在 之前排序8u60。我不知道为什么 OpenJDK 8 包似乎在-b~b后缀之间交替。

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