故障描述
我更新到 V3.0.12 开始,思源的就提示内核的故障了,我之前也在论坛发了帖子,也看到了很多其他人的帖子,然后也没人理,就自己来解决一下了。有相同故障的可以看看
环境:ubuntu 20.04
问题分析
我看到是 kernel 的故障就去 kernel 看了看,很明显是 GLIBC 库的问题
附一下 linux 下各版本的 glibc 库情况
Ubuntu | Debian | CentOS | Glibc |
---|---|---|---|
22.04 | - | - | 2.34 |
20.04 | 11 | - | 2.31 |
- | 10 | 8 | 2.28 |
18.04 | - | - | 2.27 |
- | 9 | - | 2.24 |
16.04 | - | - | 2.23 |
14.04 | 8 | - | 2.19 |
13.04 | - | 7 | 2.17 |
12.04 | - | - | 2.15 |
- | 7 | - | 2.13 |
- | - | 6 | 2.12 |
解决方案
方案一:更新 linux 发行版本 (不推荐,主要没必要)
方案二:更新 glibc 库(不推荐,这个升级坑比较多)
方案三:自行编译
这里主要针对方案三展开说说,这里是 siyuan kernel 的问题,就重新编译 kernel 就好了
cd kernel
go version
export GO111MODULE=on
export GOPROXY=https://goproxy.io
export CGO_ENABLED=1
export GOOS=linux
export GOARCH=amd64
go build --tags fts5 -v -o "../app/kernel-linux/SiYuan-Kernel" -ldflags "-s -w" .
编译结果在../app/kernel-linux/SiYuan-Kernel,,然后 go 版本要求是 go1.22.0
把编译完的 bin,替换的下载的包里就 ok,正常启动,其他的模块的故障也可以自行编译替换
建议
作为思源 3 年的用户了,有一些想法和建议,看看 D 大怎么想
1.像基础库依赖这种,编译的版本可以低一点,很多人还在使用 ubuntu 18,那么他们除了自己编译,不然没有办法使用。很多时候,一些基础库,没办法说更新就更新,思源的更新直接导致一个 linux 大版本下无法使用,而且更新的必要性是什么
2.很多的策略的更新我觉得比较随意,没有合理的测试验证,像之前同步机制变化,作为一个商用软件了,合理的向上兼容是很重要的
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于