VSCode Remote SSH 远程连接 glibc 高版本依赖问题

环境

  • ssh服务器
c 复制代码
$ cat /etc/os-release 
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
  • vscode 版本(windows)
c 复制代码
VSCodeUserSetup-x64-1.138.0.exe
  • remote-ssh 版本
c 复制代码
0.102.0
// 升级版本后会遇到新的问题 ,可通过 https://blog.csdn.net/u011011827/article/details/166131846 解决
// 该方案下可以适配到 0.128.0  // 2026-9-20 14:45:37

遇到的问题: remote ssh 返回失败

  • vscode log
c 复制代码
> Server did not start successfully. Full server log at /home/builder/.vscode-server/.7debcd0e2acdea1c52de81bf9ee1620444407dda.log >>>
> /home/builder/.vscode-server/bin/7debcd0e2acdea1c52de81bf9ee1620444407dda/node: /lib64/libstdc++.so.6: version `CXXABI_1.3.11' not found (required by /home/builder/.vscode-server/bin/7debcd0e2acdea1c52de81bf9ee1620444407dda/node)
> /home/builder/.vscode-server/bin/7debcd0e2acdea1c52de81bf9ee1620444407dda/node: /lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /home/builder/.vscode-server/bin/7debcd0e2acdea1c52de81bf9ee1620444407dda/node)
> /home/builder/.vscode-server/bin/7debcd0e2acdea1c52de81bf9ee1620444407dda/node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /home/builder/.vscode-server/bin/7debcd0e2acdea1c52de81bf9ee1620444407dda/node)
> /home/builder/.vscode-server/bin/7debcd0e2acdea1c52de81bf9ee1620444407dda/node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /home/builder/.vscode-server/bin/7debcd0e2acdea1c52de81bf9ee1620444407dda/node)
> /home/builder/.vscode-server/bin/7debcd0e2acdea1c52de81bf9ee1620444407dda/node: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /home/builder/.vscode-server/bin/7debcd0e2acdea1c52de81bf9ee1620444407dda/node)
> /home/builder/.vscode-server/bin/7debcd0e2acdea1c52de81bf9ee1620444407dda/node: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by /home/builder/.vscode-server/bin/7debcd0e2acdea1c52de81bf9ee1620444407dda/node)
> /home/builder/.vscode-server/bin/7debcd0e2acdea1c52de81bf9ee1620444407dda/node: /lib64/libc.so.6: version `GLIBC_2.27' not found (required by /home/builder/.vscode-server/bin/7debcd0e2acdea1c52de81bf9ee1620444407dda/node)
> /home/builder/.vscode-server/bin/7debcd0e2acdea1c52de81bf9ee1620444407dda/node: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by /home/builder/.vscode-server/bin/7debcd0e2acdea1c52de81bf9ee1620444407dda/node)
> /home/builder/.vscode-server/bin/7debcd0e2acdea1c52de81bf9ee1620444407dda/node: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by /home/builder/.vscode-server/bin/7debcd0e2acdea1c52de81bf9ee1620444407dda/node)
> <<< End of server log

修复问题思路

c 复制代码
在错误原因描述, 整体来说就是
给 node 程序 打补丁 , 即 "用 patchelf 工具 打补丁,补丁是GLIBC 高版本ABI"

修复问题过程

    1. 设置工作目录
c 复制代码
/opt/vscode_patch/
    1. 获取GLIBC 高版本ABI
c 复制代码
可以自己编译,但没必要

1.1
直接下载rpm,并解压 ,  从 https://rpmfind.net/ 找到 glibc-2.28 和 libstdc++-8.5.0
2026-9-20 10:39:53 下载的是
https://rpmfind.net/linux/almalinux/8.10/BaseOS/x86_64/os/Packages/libstdc++-8.5.0-22.el8_10.x86_64.rpm
https://rpmfind.net/linux/almalinux/8.10/BaseOS/x86_64/os/Packages/glibc-2.28-251.el8_10.40.x86_64.rpm

1.2
rpm2cpio glibc*.rpm | cpio -idmv
rpm2cpio libstdc++*.rpm | cpio -idmv
    1. 核验 ABI版本
c 复制代码
strings  ./usr/lib64/libc.so.6 |grep ^GLIBC
strings  ./usr/lib64/libstdc++.so.6  |grep ^GLIBCXX_
strings  ./usr/lib64/libstdc++.so.6  |grep ^CXXABI_
    1. 打patch
c 复制代码
3.1. 获取 patch 程序
	从 https://github.com/NixOS/patchelf/releases 获取 patchelf-0.19.1-x86_64.tar.gz 并解压
3.2. 打patch
3.2.1
/opt/vscode_patch/bin/patchelf --set-rpath       /opt/vscode_patch/usr/lib64                       /home/builder/.vscode-server/bin/7debcd0e2acdea1c52de81bf9ee1620444407dda/node 
3.2.2
/opt/vscode_patch/bin/patchelf --set-interpreter /opt/vscode_patch/usr/lib64/ld-linux-x86-64.so.2  /home/builder/.vscode-server/bin/7debcd0e2acdea1c52de81bf9ee1620444407dda/node
    1. 核验patch结果
c 复制代码
$ ldd /home/builder/.vscode-server/bin/7debcd0e2acdea1c52de81bf9ee1620444407dda/node 
        linux-vdso.so.1 =>  (0x00007ffd0cfba000)
        libdl.so.2 => /opt/vscode_patch/usr/lib64/libdl.so.2 (0x00007fc159cb0000)
        libstdc++.so.6 => /opt/vscode_patch/usr/lib64/libstdc++.so.6 (0x00007fc15991b000)
        libm.so.6 => /opt/vscode_patch/usr/lib64/libm.so.6 (0x00007fc159599000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fc159383000)
        libpthread.so.0 => /opt/vscode_patch/usr/lib64/libpthread.so.0 (0x00007fc159163000)
        libc.so.6 => /opt/vscode_patch/usr/lib64/libc.so.6 (0x00007fc158d8d000)
        /opt/vscode_patch/usr/lib64/ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2 (0x00007fc159eb4000)
[builder@localhost ~]$ /home/builder/.vscode-server/bin/7debcd0e2acdea1c52de81bf9ee1620444407dda/node
Welcome to Node.js v24.18.1.
Type ".help" for more information.
> 
  • 5 再次开启vscode,ssh 到服务器,会提示如下,don't show 即可

  • 注意的过程

c 复制代码
1. 获取的 glibc 和 libstdc++包 // 根据你的系统来选择
2. patchelf 的版本
3. patchelf 执行过程(目前看来,只能先执行 3.2.1 ,再执行3.2.2 . 顺序搞反或者合成一条命令都会导致node执行 segmentfault)
4. 做完之后 目录 /opt/vscode_patch 要保留
5. patch 只需要做一次就可以 . 
6. patch 过程也可以交由 vscode , 这种场景下patch 过程每次都要执行,按照 "将patch过程交由 vscode 处理 ",配置过后 每次ssh都要执行
7. 建议,交由 vscode 处理, 因为 vscode-server 会更新
  • 将patch过程交由 vscode 处理
c 复制代码
打patch的过程可以交由 vscode 执行,只需要在 builder用户的登录shell的 rc 文件中增加 如下三行环境变量的设置,然后再次操作vscode 进行ssh 例如 : /home/builder/.bashrc 

export VSCODE_SERVER_CUSTOM_GLIBC_LINKER=/opt/vscode_patch/usr/lib64/ld-linux-x86-64.so.2
export VSCODE_SERVER_CUSTOM_GLIBC_PATH=/opt/vscode_patch/usr/lib64
export VSCODE_SERVER_PATCHELF_PATH=/opt/vscode_patch/bin/patchelf

参考

相关推荐
Eiceblue15 小时前
用 Python 给 Word 文档加水印:文字、图片与批量处理
开发语言·vscode·python·word
2501_9159214316 小时前
KXBuild CI 实操,Windows/Linux 服务器接入 Jenkins 打包 iOS IPA
服务器·windows·vscode·ios·ci/cd·个人开发·敏捷流程
Lhan.zzZ16 小时前
用 Qt 构建线程安全的通讯静态库:从线程亲和性到完整工程
c++·vscode·qt·tcp/ip·udp
Halo101317 小时前
VSCode设置护眼背景色
ide·vscode·编辑器
2501_915909062 天前
Windows 上用 VS Code 调试 iPhone 真机 App,KXBuild 断点、崩溃定位实操
ide·windows·vscode·ios·iphone·个人开发·敏捷流程
小卡拉米本米2 天前
解决Vscode使用GitHub账号登录慢的问题
ide·vscode·编辑器
小菜要扣篮2 天前
Ubuntu 下使用 vscode 打开 C++ 项目后,无法通过 F12 定位到定义问题解决
c++·vscode·ubuntu
迪菲赫尔曼2 天前
【基础篇 08】让VS Code连接服务器:界面在本地,文件保存到远端
运维·服务器·vscode·yolo·论文·教程·ultralyt
2501_915106322 天前
Windows 上开发 Unity iOS,使用 KXBuild 进行真机调试、性能采样与打包 ipa
windows·vscode·unity·ios·个人开发·swift·敏捷流程
MicrosoftReactor3 天前
技术速递|超越一刀切:为 GitHub Copilot CLI 和 VS Code 实现决策路由
vscode·ai·github·copilot·决策路由