alpine镜像go新版本1.21出现libresolv.so.2: No such file or directory和__res_search: symbol not found

环境描述:

alpine 3.18

问题描述:

alpine镜像无改动情况下,从go1.19升级至1.21后出现so库找不到

相关问题Issue:

Error loading shared library libresolv.so.2 on Alpine in Go 1.20 · Issue #59305 · golang/go · GitHub

解决问题:

方法1:手动下载最新版的gcompat进行安装
wget https://mirrors.ustc.edu.cn/alpine/v3.19/main/x86_64/gcompat-1.1.0-r4.apk
apk add gcompat-1.1.0-r4.apk
方法2:使用最新的alpine:3.19镜像(截止至发帖日,hubdocker内还未更新3.19镜像)
docker pull alpine:3.19
# alpine容器内执行安装gcompat
apk add gcompat
方法3:使用alpine的alpha版本镜像
docker pull alpine:edge
#或
docker pull alpine:20230901

# 容器内执行安装gcompat
apk add gcompat
方法4:将apk源改为3.19版本
sed -i 's#v3.18#v3.19#g' /etc/apk/repositories
apk add gcompat

其他问题:

alpine 3.18的gcompat 已可解决libresolv.so.2: No such file or directory的问题

但会出现__res_search: symbol not found

原因3.18版本的gcompat是libresolv.so.2 软链到ld-linux-x86-64.so.2


新版本gcompat会将libresolv.so.2软链到libgcompat.so.0

在alpine 3.18中,安装gcompat后手动软链也可避免__res_search: symbol not found问题

其他文档:

gcompat仓库:Files · current · Adélie Linux / gcompat · GitLab

Networking Library Functionsres_search - man pages section 3: Networking Library Functions

alpine packages:

https://pkgs.alpinelinux.org/packages?name=gcompat&branch=edge&repo=&arch=&maintainer=

Alpine Linux packages

Alpine Linux packages

  • 10
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值