文章目录
- [1 问题描述](#1 问题描述)
- [2 解决方案](#2 解决方案)
- [3 参考资料](#3 参考资料)
1 问题描述
使用新版本的VSCode进行容器的远程连接时,会报如下图1-1所示的需要GLIBC >= 2.28的错误。解决方案也很明显,就是将GLIBC更新到2.28以上。

图1-1 报错示意图
2 解决方案
遇到这类问题,首先问了下豆包,给出的解决方案是
方案一:更换基础镜像
结论:这样很多配置要重新来,太麻烦,放弃。
方案二:升级容器内的GLIBC
这个方案比较合适,也是最终使用的方案,但是豆包提供的通过下载压缩包来解决的方式是不行的。
方案三:使用旧版的VSCode
那我当初为啥升级VSCode呢?
好的,那么确定使用方案二更新GLIBC的路线。在使用豆包的方法失败后,去搜索了别人的方案,主要参考了终于解决vscode进不去容器的问题------Warning: Missing GLIBC >= 2.28!,但其中也会遇到一些其他问题,故也写一篇博客进行记录。
首先添加软件源和密钥
bash
su -c 'echo "deb http://security.debian.org/debian-security buster/updates main" >> /etc/apt/sources.list' root
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 112695A0E562B32A 54404762BBB6E853
然后尝试更新apt
bash
apt update
这一步遇到报错
Err:6 http://security.debian.org/debian-security buster/updates Release
404 Not Found [IP: 151.101.194.132 80]
这个时候再来找豆包解决,有效的方案是
bash
# 备份原有源文件
cp /etc/apt/sources.list /etc/apt/sources.list.bak
# 清空并替换源内容
echo "deb http://archive.debian.org/debian buster main contrib non-free
deb http://archive.debian.org/debian-security buster/updates main contrib non-free" > /etc/apt/sources.list
# 添加过期源允许选项
echo "Acquire::Check-Valid-Until \"false\";" > /etc/apt/apt.conf.d/99no-check-valid-until
# 重新执行更新
apt update
这次又报错
Err:1 http://archive.debian.org/debian buster InRelease
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 648ACFD622F3D138 NO_PUBKEY 0E98404D386FA1D9 NO_PUBKEY DCC9EFBF77E11517
再次豆包,有效的方案是
bash
# 导入第一个公钥
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138
# 导入第二个公钥
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0E98404D386FA1D9
# 导入第三个公钥
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys DCC9EFBF77E11517
# 重新执行更新
apt update
在经过比较漫长的更新后,这次没问题了。
然后
bash
apt install libc6 libc6-dev -y
有经过漫长的安装,最终搞定。用下面的指令查看有没有2.28,有就成功了。
bash
strings /lib/x86_64-linux-gnu/libc.so.6 | grep GLIBC_
3 参考资料
1\] [终于解决vscode进不去容器的问题------Warning: Missing GLIBC >= 2.28!](https://blog.csdn.net/yangsn0719/article/details/148087697) \[2\] 豆包