请问为啥 openSUSE 的软件源有些软件看起来不是最新版的

最近虚拟机里安装了 tumbleweed 尝尝鲜,安装软件的时候发现一个问题。为什么有些软件看起来不是最新版的,例如 gradle 最新应该是 6.X,源里的才 4.X;nodejs 貌似也就 12。按理说滚动更新不是应该永远最新版么

缺人吧,上游源码放出来了下游 openSUSE 的人还需要自行打包,测试没什么大问题后再放到官方源里
Arch 的主源里包也不都是最新的,最新的往往是 AUR 上私人维护的版本
其实 Node.js 和 vscode 这种商业软件官方都有现成的二进制包或者二进制源,一般都不用发行版里带的版本

感谢大半夜的回复,虽然 openSUSE 也挺小众的,但是我感觉 arch 也没多大众。为啥 arch 就能做到比较快的更新(虽然更新的快也容易挂),而且这个感觉有点太慢了吧。gradle 4.X,nodejs 13.X 感觉挺早以前就出了吧,源里面的大版本差的有点多啊。

openSUSE 按照他们官方自己的说法,tumbleweed 里面放的是 “最新稳定版” 软件。所以官方不但放入的是新软件包版本,还要追求稳定的品质。这点 Arch 就不行。Arch 一般是有新的东西新的版本,马上就放到仓库去了。这也是为什么 arch 容易滚挂的原因之一。很激进就是了。openSUSE 就比较慢一点,不会一有新版本更新了就马上丢到风滚草仓库。
我印象最深的是 gimp 这个著名的图片处理软件,现在 gimp 官方都到了 2.10.18 的版本了,openSUSE 风滚草仓库里还是 2.10.14.就很能说明了。

2赞

版本不够可以上 obs 上别人的版本,gradle 这么常用的东西肯定有人做
Node.js 就官网二进制吧

我最近在搞 java 大数据,写 spark 项目,推荐你 jvm 方面的 sdk 可以用 sdkman
有一点需要注意的是这里面下载路径都是官方地址,服务器不在国内,有时候可能需要加速一下。

@techstay

要考虑样本偏差的问题。

据我所知,nodejs 由于 module 的 sematic versioning 机制天生与 rpm 的版本机制不兼容,给打包设置了很大障碍。Fedora 选择的是每一个版本的 module 打一个包,造成了它有一个庞大的 multiver list。我们在 openSUSE 12.X 的时候也沿用过 Fedora 的方式,但那时 npm 版本迭代太快,造成了一个礼拜不到要更新两百个包。SUSE 那边维护 npm 的创始包工就弃坑了,我维护了半年左右就决定采用 bundle packaging 的方式了。也就是说一个 node 软件和所有依赖 module 打一个包。但这是创举,需要一个很完善的工具去做,比如你安装 npm 自己可能一条命令就完事了(npm install -g npm),但是要打包呢?200 多个包怎么下载,下载后再更新时哪个更新了哪个没更新?怎么按顺序解压?安装时哪个装到哪个的 node_modules 下面?怎么深入 cd 到某个文件夹去 node build?再往深说,bower_componenets 怎么打包?yarn 的呢?electron 的呢?怎么知道那一大个包里哪个 module 是有 cve(安全隐患)的?所以越深入了解越触目惊心。这些年我都一直在开发这样一个东西(看 github.com/openSUSE-zh/ 下面 node 相关的东西,现在模式已经出来了,差编码)。

所以就导致了 Node.js 在 openSUSE 下面除了我和 Adam,几乎没有别的包工。Adam 负责维护 Node.js 本身,坚持守望;我负责开发工具,面向未来。包工根据兴趣干活,nodejs 受众是前端,前端一般对后端没有兴趣。即使包工有兴趣,现有机制不全工具不全也包不了。

所以拿只有一个人维护的包去比较肯定会有偏差,一个人维护的包 Archlinux 下也是经常 flag outdated 的。Adam 是 SUSE 员工,SUSE 产品不说上 Node.js 13,他打包了也没啥意义。

应该拿一个维护者人数多到工作可以正常推进的包,时间拉到一个足够说明问题的长度,剔除发行版维护流程差异(比如我们的 KDE 至少要提交两次才能进主源,有些发行版是这边编译那边自动发布,没有 cross code review 没有 testing,那我们跟它比就应该定位到最早开发的那个工程)来看待这个问题。比如 ibus 从 1.4.0 - 1.5.2 版本,每次的更新速度。比如 KDE:Unstable:Factory 的更新情况(那个几乎是日更,不要拿出去比)。

1赞

另外还有一点,包工跟包工有区别。要比一般的,别比特殊的。

Archlinux 你至少要过滤一个打包达人、Living Legend Felix Yan(都是自动更新的)。nodejs 在 archlinux 那边是他维护的

1赞

arch 小众,arch + manjaro 就不小了,可以说是在 ubuntu 之后最流行的发行版。不同系统设计理念不一样,我觉得 opensuse 目前用户少软件少问题是无解。

感谢大佬解惑,,也感谢大佬对 linux 的贡献。看来貌似简单的软件包也有很多门道,没有我想象的那么简单。看来有些软件只能自己去安装最新版了,怪不得会出现 sdkman 这类工具。

opensuse 做的真的挺好的,kde 桌面装完以后什么都有了,fcitx 中文输入法也直接配好了,可惜用的人不是很多。希望 openSUSE 越来越好吧!

1赞

感谢,sdkman 之前看 java 的时候有人提到过,当时我就想软件仓库里不是有么,为啥还要自己整一个。现在还是人家明白,我见得太少了

主要还是看需求吧。我开发的话 jdk 版本有时候会变,有的还用 jdk8 有的已经 jdk11 了,还有 javafx,graalvm 啥的稀奇古怪的 jvm 版本,所以有时候软件源里更新慢几拍就会有点糟心,而且我记得 tw 自带 openjdk11,估计有的组件依赖这个吧,所以有时候不动系统自带的可能可以减少一点玄学问题:rofl:

我的操作都是偷 fedora 的包来用哈哈哈

1赞