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

参考

相关推荐
daxiangxm6 小时前
【趣味休息】“围住小猫在线玩”-“困住小猫”,又回来了
数据结构·人工智能·vscode·github·php
星光开发者6 小时前
基于Spring Boot的充电桩管理系统的设计与实现-计算机毕设【课程设计】57105
vue.js·spring boot·vscode·mysql·django·php·express
程序员允诺18 小时前
内网/无网环境必备:VS Code Remote-SSH 离线包下载与手动部署教程
vscode
darin_ฅ( ̳• ◡ • ̳)ฅ11 天前
【开发工具】2026版-VScode&IDEA&Cursor插件安装及插件配置迁移
vscode·idea
别动我齐刘海1 天前
ROS2 Jazzy + C++ 实战路线——进阶学习3
c++·人工智能·vscode·python·算法·机器学习·机器人
xieliyu.1 天前
前端基础:常见CSS选择器用法
前端·css·笔记·vscode
别动我齐刘海2 天前
ROS2 Jazzy + C++ 实战路线——基础学习2
c++·人工智能·vscode·python·学习·机器学习·机器人
郝学胜-神的一滴2 天前
C++20模板元编程 05:吃透变参模板,解锁编译期万能参数能力
服务器·开发语言·c++·windows·vscode
我要见SA姐13 天前
DeepSeek Harness 开源贡献手记:从 Issue 到 Merge 的完整旅程
ide·vscode·python·自动化·编辑器