当前位置:首页>python>一次python编译二进制问题的处置与OpenJDK兼容的学习

一次python编译二进制问题的处置与OpenJDK兼容的学习

  • 2026-10-11 07:45:02
一次python编译二进制问题的处置与OpenJDK兼容的学习

背景

前几天同事要去现场部署一个python开发的自动化测试平台然后在几台比较旧的机器上面出现了 glibc2.28xxx找不到的问题. 当时同事找到我, 我给他们解释了一下同事说jdk是不是就没这个问题了.我当时想了下,说差不多,但是jdk也有一些使用范围然后想着用kimi啥的整理一下.

出错的原因

gcc是编译 glibc是运行gcc根据glibc的类库编译出来具体的二进制一般情况下 glibc是向下兼容的.也就是 低版本glibc编译的 高版本glibc 都能运行但是高版本的glibc可能会用到更新的指令集,更高级的语法性能以及安全性会更好.所以低版本编译的兼容性好高版本编译的性能好,安全性好.所有的东西都是取舍因为银河麒麟v10的较新的版本都是基于glibc2.28开发的所以我们使用v10编译出来的在异地需要glibc2.28遇到低于这个版本的可能都会出问题的. 

CentOS和Ubuntu的glibc版本情况

CentOS 版本
基于 RHEL
发布日期
glibc 版本
默认 GCC
内核版本
维护状态
CentOS 4.0
RHEL 4
2005-03-09
2.3.4
GCC 3.4
2.6.9
已终止 (2017-03)
CentOS 5.0
RHEL 5
2007-04-18
2.5
GCC 4.1
2.6.18
已终止 (2017-04)
CentOS 6.0
RHEL 6
2011-07-10
2.12
GCC 4.4
2.6.32
已终止 (2020-11)
CentOS 7.0
RHEL 7
2014-07-07
2.17
GCC 4.8
3.10.0
已终止 (2024-06)
CentOS 8.0
RHEL 8
2019-09-24
2.28
GCC 8.2
4.18.0
已终止 (2021-12)
CentOS Stream 9
RHEL 9
2021-12-03
2.34
GCC 11.2
5.14.0
活跃
CentOS Stream 10
RHEL 10
2024-05-28
2.39
GCC 14.1
6.x
活跃

Ubuntu 版本
代号
发布日期
glibc 版本
类型
4.10
Warty Warthog
2004-10-20
2.3.2
非 LTS
5.04
Hoary Hedgehog
2005-04-08
2.3.4
非 LTS
5.10
Breezy Badger
2005-10-13
2.3.5
非 LTS
6.06
Dapper Drake
2006-06-01
2.4LTS
6.10
Edgy Eft
2006-10-26
2.5
非 LTS
7.04
Feisty Fawn
2007-04-19
2.5
非 LTS
7.10
Gutsy Gibbon
2007-10-18
2.6
非 LTS
8.04
Hardy Heron
2008-04-24
2.7LTS
8.10
Intrepid Ibex
2008-10-30
2.8
非 LTS
9.04
Jaunty Jackalope
2009-04-23
2.9
非 LTS
9.10
Karmic Koala
2009-10-29
2.10
非 LTS
10.04
Lucid Lynx
2010-04-29
2.11LTS
10.10
Maverick Meerkat
2010-10-10
2.12
非 LTS
11.04
Natty Narwhal
2011-04-28
2.13
非 LTS
11.10
Oneiric Ocelot
2011-10-13
2.13
非 LTS
12.04
Precise Pangolin
2012-04-26
2.15LTS
12.10
Quantal Quetzal
2012-10-18
2.15
非 LTS
13.04
Raring Ringtail
2013-04-25
2.17
非 LTS
13.10
Saucy Salamander
2013-10-17
2.17
非 LTS
14.04
Trusty Tahr
2014-04-17
2.19LTS
14.10
Utopic Unicorn
2014-10-23
2.19
非 LTS
15.04
Vivid Vervet
2015-04-23
2.21
非 LTS
15.10
Wily Werewolf
2015-10-22
2.21
非 LTS
16.04
Xenial Xerus
2016-04-21
2.23LTS
16.10
Yakkety Yak
2016-10-13
2.24
非 LTS
17.04
Zesty Zapus
2017-04-13
2.24
非 LTS
17.10
Artful Aardvark
2017-10-19
2.26
非 LTS
18.04
Bionic Beaver
2018-04-26
2.27LTS
18.10
Cosmic Cuttlefish
2018-10-18
2.28
非 LTS
19.04
Disco Dingo
2019-04-18
2.29
非 LTS
19.10
Eoan Ermine
2019-10-17
2.30
非 LTS
20.04
Focal Fossa
2020-04-23
2.31LTS
20.10
Groovy Gorilla
2020-10-22
2.32
非 LTS
21.04
Hirsute Hippo
2021-04-22
2.33
非 LTS
21.10
Impish Indri
2021-10-14
2.34
非 LTS
22.04
Jammy Jellyfish
2022-04-21
2.35LTS
22.10
Kinetic Kudu
2022-10-20
2.35
非 LTS
23.04
Lunar Lobster
2023-04-20
2.37
非 LTS
23.10
Mantic Minotaur
2023-10-12
2.38
非 LTS
24.04
Noble Numbat
2024-04-25
2.39LTS
24.10
Oracular Oriole
2024-10-10
2.40
非 LTS
25.04
Plucky Puffin
2025-04-17
2.41
非 LTS
25.10
Questing Quokka
2025-10 (预计)
2.41
 (预计)
非 LTS (预计)
26.04
Resolute Raccoon
2026-04 (预计)
2.41+
 (预计)
LTS
 (预计)


OpenJDK与glibc和windows系统的关系

OpenJDK 版本
Linux glibc 最低版本
Windows 编译工具链
Windows VC++ Redistributable
JDK 1.6
2.4
VS 2005 (VC++ 8.0)
Visual C++ 2005 Redistributable
JDK 1.7
2.4
VS 2008 (VC++ 9.0)
Visual C++ 2008 Redistributable
JDK 8 (LTS)2.12
 (CentOS 6)
VS 2013/2017 (VC++ 12.0/14.1)
VC++ 2013 或 2015-2022 合并包
JDK 9-14
2.12
VS 2017/2019 (VC++ 14.1/14.2)
VC++ 2015-2022 Redistributable
JDK 15-162.14
 (Adoptium) / 2.12 (Oracle)
VS 2019 (VC++ 14.2)
VC++ 2015-2022 Redistributable
JDK 17 (LTS)2.17
 (CentOS 7)
VS 2019 (VC++ 14.2)
VC++ 2015-2022 Redistributable
JDK 18-23
2.17
VS 2022 (VC++ 14.3)
VC++ 2015-2022 Redistributable
JDK 242.28
 (RHEL 8)
VS 2022 (VC++ 14.3)
VC++ 2015-2022 Redistributable
JDK 25 (LTS)2.28
 (预计)
VS 2022 (VC++ 14.3)
VC++ 2015-2022 Redistributable
JDK 26+2.29+
VS 2022+ (VC++ 14.4+)
VC++ 2015-2022 Redistributable

OpenJDK与glibc和Linux发行版之前的对照关系

JDK 版本
最低 glibc
CentOS/RHEL 版本
CentOS glibc
Ubuntu 版本
Ubuntu glibc
Debian 版本
Debian glibc
对应 GCC
系统发布日期
JDK 6 (1.6)
2.4
CentOS 5 (2007) / RHEL 5
2.5
Ubuntu 6.06 Dapper (2006)
2.4
Debian 4 Etch (2007)
2.3.6
GCC 4.1
2006-06 (Ubuntu) / 2007-03 (CentOS 5)
JDK 7 (1.7)
2.4
CentOS 5/6
2.5 / 2.12
Ubuntu 6.06/8.04 Hardy
2.4 / 2.7
Debian 4/5 Lenny (2009)
2.3.6 / 2.7
GCC 4.1 / 4.3
2006-06 / 2008-04 / 2009-02
JDK 8 (1.8) LTS
2.12
CentOS 6 (2011) / RHEL 6
2.12
Ubuntu 10.10 Maverick (2010)
2.12
Debian 6 Squeeze (2011)
2.11.3
GCC 4.4
2010-10 (Ubuntu) / 2011-07 (CentOS 6) / 2011-02 (Debian 6)
JDK 11 LTS
2.12 (x86) / 2.17 (其他)
CentOS 6 (x86) / CentOS 7 (2014)
2.12 / 2.17
Ubuntu 12.04 Precise (2012) / 14.04 Trusty
2.15 / 2.19
Debian 6/7 Wheezy (2013)
2.11.3 / 2.13
GCC 4.4 / 4.7
2012-04 / 2013-05 / 2014-04
JDK 17 LTS
2.17
CentOS 7 (2014) / RHEL 7
2.17
Ubuntu 14.04 Trusty (2014) / 13.04 Raring
2.19 / 2.17
Debian 7/8 Jessie (2015)
2.13 / 2.19
GCC 4.7 / 4.8
2013-05 / 2014-04 / 2015-04
JDK 21 LTS
2.17 (Adoptium) / 2.14 (Oracle)
CentOS 7 (2014) / RHEL 7
2.17
Ubuntu 14.04/16.04 Xenial (2016)
2.19 / 2.23
Debian 8/9 Stretch (2017)
2.19 / 2.24
GCC 4.8 / 5.4
2015-04 / 2016-04 / 2017-06
JDK 24
2.28
CentOS 8 (2019) / RHEL 8
2.28
Ubuntu 18.10 Cosmic (2018) / 20.04 Focal
2.28 / 2.31
Debian 10 Buster (2019)
2.28
GCC 8.x
2018-10 / 2019-07 / 2020-04
JDK 25 LTS (预计)
2.28
CentOS 8 (2019) / RHEL 8
2.28
Ubuntu 18.10/20.04 Focal (2020)
2.28 / 2.31
Debian 10/11 Bullseye (2021)
2.28 / 2.31
GCC 8.x / 9.x
2019-07 / 2020-04 / 2021-08
JDK 26 (预计)
2.29+
RHEL 9 (2022) / CentOS Stream 9
2.34
Ubuntu 22.04 Jammy (2022) / 24.04 Noble
2.35 / 2.39
Debian 12 Bookworm (2023) / 13 Trixie
2.36 / 2.41
GCC 11.x / 13.x
2022-04 / 2023-06 / 2025-08

最新文章

随机文章