archlinux 里一些软件包的版本的某些部分是咋来的、有啥意义?

2022-01-10 14:41:49 +08:00
 haoliang

不完全列举:

python 中 -2$, go 中 ^2:, linux 中 \.arch1-1, qt5-base 中 \+kde

起因是我想通过解析 pacman -Qu 找到由重大版本更新的包,在更新前提醒下自己,但碰到这些版本我懵了。 求解惑,谢谢大家了。

3240 次点击
所在节点    Linux
9 条回复
kkocdko
2022-01-10 14:54:39 +08:00
正确提问示范:AUR 中某些包的版本号存在后缀,有什么特殊含义?有统一的规范吗?
搜索关键词:version number suffix
帮你搜到的似乎有点沾边的答案: https://unix.stackexchange.com/questions/328276/
大概意思就是:没有准确的规定,这些都是包发布者自己定的,用来区分打包次数(同一版本的前一个打包可能有小瑕疵),特定 fork ,配套依赖的版本等等
hronro
2022-01-10 15:05:23 +08:00
个人猜测哈,3.10.1 这种应该是软件自己的版本号,后面的 `-2` 应该是 Arch 自己构建的时候改了某些构建参数之类的第几次构建?
2i2Re2PLMaDnghL
2022-01-10 15:21:48 +08:00
这些后缀通常是下游版本或构建版本
具体的内容可能是随意指定的
( AUR 里你还能看到 +(7 位 git commit hash) )
haoliang
2022-01-10 15:46:53 +08:00
谢谢各位。
之前没有打包的经验,补充了一些相关知识后才知道包版本的格式可以是: `epoch:version-rel`;

作为对比,我查看了 archlinux 和 fedora 的相关文档
* https://wiki.archlinux.org/title/PKGBUILD#pkgver
* https://docs.fedoraproject.org/en-US/packaging-guidelines/Versioning

虽然还没找到对 `\.arch1`, `\+kde+r281` 的确切定义说明,写到这里,突然想到我可以去看看 vercmp 咋实现的
yanqiyu
2022-01-10 18:04:26 +08:00
正好有给发行版打包的经验(虽然不是 arch )但是这些前后缀还是很熟悉

python:3.10.1-2
这个 -2 意思就是 3.10.1 的第二次打包,第二次打包的理由可能有很多,比如改个编译选项,加个 patch 修 bug ,和它的依赖 sobump 了对应重新编译一次

go:2:1.17.6-1
`2:`是 epoch ,如果上有乱玩版本号(改了 scheme )就需要 epoch 来确保新版本被识别为新版本

linux:5.15.13.arch1-1 qt5-base: 5.15.2+kde+r281-1
这里的额外的字符串一般代表“风味”,比如 arch1 说明这是 arch 官方的打包,还有 zen-kernel 之类的会在这里做区分
+kde+r281 这里的意思是相对于 5.15.2 的 upstream 版本的 kde 下游的 281 的 commit 之后的 tarball
meetcw
2022-01-10 18:44:19 +08:00
https://wiki.archlinux.org/title/PKGBUILD_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)#pkgrel

pkgrel
软件的发布号。这通常是一个正整数,用来区分同一版本软件的多次构建。当软件包的补丁和附加功能被添加进入 PKGBUILD ,从而导致生成的软件包发生变化时,pkgrel 应该增加 1 。而当这个软件包发布一个新版本时,发布号重置为 1 。在个别情况下,也会有其他的发布号形式。比如 主版本号.次要版本号。
voiyy
2022-01-10 19:53:35 +08:00
参考 debian dpkg 版本号规范
kkocdko
2022-01-10 23:07:16 +08:00
非常抱歉刚刚给出了似乎比较扯淡的答案 emmm ,各位轻喷
sunng87
2022-01-11 10:57:11 +08:00
其实就是在软件版本之外的打包版本,因为打包脚本、额外修改的 patch 等也是可以单独修改和变化的,所以会有版本概念。比如在 AUR 上,修改了 PKGBUILD 的一些信息、安装方式等,都要增加这个 pkgrel 以示升级

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/827315

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX