成都网站排名优化报价,建设云个人证件查询系统,文化网站设计经典案例,sem搜索1 版本号组成结构
Debian 版本号格式为#xff1a;[epoch:]upstream_version[-debian_revision]
示例#xff1a;2:1.18.3~betadfsg1-5b1
组件说明比较优先级Epoch冒号前的数字 (2:)最高Upstream主版本 (1.18.3~betadfsg1)中Debian修订号减号后的部分 (5)最…1 版本号组成结构
Debian 版本号格式为[epoch:]upstream_version[-debian_revision]
示例2:1.18.3~betadfsg1-5b1
组件说明比较优先级Epoch冒号前的数字 (2:)最高Upstream主版本 (1.18.3~betadfsg1)中Debian修订号减号后的部分 (5)最低
2 核心比较规则
2.1 Epoch 比较
# 无Epoch默认为0
1.0 1:1.0 # 0:1.0 1:1.02.2 Upstream 版本比较
2.2.1 字符处理优先级从高到低
~ (波浪线) 字母 数字 其他符号 (如 . - _)
2.2.2 关键行为
波浪线优先标识预发布版本
1.0~beta 1.0 1.0alpha
数字按数值比较
1.2 1.10 # 非字符串式比较
字母按ASCII顺序
1.0a 1.0b 1.0beta 1.0pre
符号的特殊处理
1.02025 1.02026
1.0.dfsg 1.0.dfsg1
2.3 Debian修订号比较
1.0-9 1.0-10 # 修订号纯数字比较
1.0-1~beta 1.0-1
3 完整比较流程
拆分组件epoch:upstream-debian逐级比较epoch → upstream → debian_revision分段处理以非字母数字字符为分隔符
比较 1.0.3~rc1 → 分段为 [1, 0, 3, ~rc, 1]
3.1 实战测试案例
版本A版本B比较结果2:1.5-31:9.0-1A B (epoch 2 1)1.18~beta1.18A B (~优先级低)2024.12.312024.3.15A B (12 3)1.0.0dfsg1-41.0.0-4dfsg1A B (upstream中的优先级高于debian修订号)
3.2 常见误区
字母大小写敏感
1.0A ≠ 1.0a # ASCII值比较A(65) a(97)
修订号中的非数字处理
1.0-1a 1.0-1 # 修订号分段比较字符比空高
空修订号处理
1.0 1.0-0 # 修订号不存在时视为0
4 调试工具
# 使用 dpkg 命令测试比较
$ dpkg --compare-versions 1.0~beta lt 1.0 echo 符合预期
符合预期# 生成版本比较报告
$ apt-get install devscripts
$ dpkg-parsechangelog -l../debian/changelog -SVersion
2:1.18.3~betadfsg1-5b1最佳实践
预发布标记使用 ~ 标识beta/RC版本日期版本推荐格式 YYYYMMDD (如 20250228)复杂场景通过 dpkg --compare-versions 验证比较逻辑
可供--compare-versions 使用的比较运算符有 lt le eq ne ge gt (如果版本号为空那么就认为它先于任意版本号) lt-nl le-nl ge-nl gt-nl (如果版本号为空那么就认为它后于任意版本号) (仅仅是为了与主控文件的语法兼容)。