有一个go实现的项目代码最近有更新,自己在开发环境上手动构建并运行都没有问题(构建和运行时相同环境,肯定没有问题^_^)。

后面通过jenkins构建镜像也没有问题,运行时却报错

 之前的版本在jenkins上构建也是成功的,后沟通得知jenkins集群版本最近有更新

 

那么,大概知道原因了,由于jenkins集群升级导致编译环境和docker运行环境glibc版本不一致。

运行环境glibc版本:

 

问题来了,我们该如何解决,这里想到下面的方式:

1、升级docker运行环境系统版本

2、编译的时候指定libc链接库

使用编译器-l-L选项手动添加从目标系统下载的链接库从而解决glibc版本不匹配的问题

注:该种方式需要维护jenkins集群的同学帮忙在集群中部署旧版本的glibc,沟通可能会有一定的成本。

建议优先使用方式1,毕竟glibc版本旧,意味着系统过旧,升级一下也是好的。另外docker环境,只要重新配置基础镜像就可以。操作也比较简单。

 

不推荐在直接升级运行环境libc版本,可能导致一些软件不兼容

 

参考:

关于version `GLIBC_2.34‘ not found解决办法(非升级glibc库或Linux系统)_version `glibc_2.34' not found-CSDN博客

glibc查看版本号 - 酱油和醋 - 博客园 (cnblogs.com)

 

posted on 2024-01-19 17:32  妞溜溜  阅读(2308)  评论(0编辑  收藏  举报