技术解析

你们手头上的 Linux 的 glibc 版本一般都是多少呢
0
2021-06-22 13:44:54
idczone
直接运行 /lib/libc.so.6 就能看到版本号
都升级到 glibc 2.28 了么
https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Linux_compatibility_matrix

2.17 的路过

不想把系统滚死的话,不要手痒折腾 glibc

跟着系统包走。系统包升就升,不升就不升。(这不是常识么……
/lib/x86_64-linux-gnu/libc-2.27.so
GNU C Library (Debian GLIBC 2.27-6) stable release version 2.27.

看你什么系统,过旧的系统可以考虑自己升级,但如果是该发行版本较新的版本,那就没有必要。
比如 CentOS 7,glibc 2.17 完全足够了。大不了自己编译程序总可以吧。

我是 LFS 用户, 编译出来的系统用的就是 glibc-2.28

看来大部分都至少能保证 glibc-2.17 了, 不知道内核能不能保证 3.16 以上呢

LFS 那就跟着 LFS 的包走就行了嘛。
一般人还是发行版用得多,不会跟着潮流去滚包的。

gentoo 跟系统走的话,2.26

2.26

Arch 也是 2.28 ,然后编译出来的应用丢服务器上经常有 glibc 兼容问题,并不是很想用 docker 附带整系统,我现在用的是 patchelf 加一个 so 集合做兼容包(

手贱折腾过一次,后来再也不自己升级了

实在有指定版本的必要 用 docker 隔离多好


分发二进制软件时,glibc 兼容问题,一般编译软件在一个相对旧的发行版上编译即可(如 Debian oldstable )。
有源码为什么要在自己工作站上编译?应该直接在服务器上编译呀。
如果服务器不是你在管理,你可以试试分发 llvm IR

用了一些新编译器的独占特性(其实这都算好的了,没碰上 kernal is too old 就都可以强行 patchelf 解决

不一定要附带整个系统的.可以看看 stretch 镜像.或者对 glibc 没有硬需求的话.可以考虑使用 musl-libc 的 alpine

我也是这么干的
debian 编译,编译时就指定了 LDPATH,打包 so 分发
跨大版本跑没问题,甚至跨发行版跑也没问题
不过生产环境不敢这么干,都是不同大版本编译一份

刚想提这个呢,就是对 glibc 版本有强依赖,连 dlopen/dlsym 都解决不了,然后我实际上是 strace -e file 运行后,把所有读取的 so 文件拷贝过去了(所以也不是很大(

kernel: 4.19rc6
glibc: 2.28
xubuntu
(自己编译升级的

archlinux 2.28

比较好奇,为什么 Debian 8 的内核版本比 Debian 7 的还低一点,刚开了虚拟机看了一下,我的 Debian 8 已经升级到最新的 8.11 版本,内核确实还是 3.16 版。


怎么看出 2 > 16 的

哈哈,我错了~ 妹想到 minor 会迭代这么多版本。。。
https://en.wikipedia.org/wiki/List_of_Linux_kernel_names

sudo /lib/x86_64-linux-gnu/libc.so.6
GNU C Library (Debian GLIBC 2.27-6) stable release version 2.27.
debian

他山万年历,兼容 libc 2.5+ 32/64 linux 任意图形桌面系统

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服