使用patchelf解决vscode远程连接不支持低版本glibc的问题

使用patchelf解决vscode远程连接不支持低版本glibc的问题

目录

  • 使用patchelf解决vscode远程连接不支持低版本glibc的问题
    • 1. 动态链接库下载
    • 2. 用 patchelf 修改 vscode-server 依赖的 glibc 版本

VScode 1.86 版本的 remote 要求 glibc 2.28 及以上,于是在各种旧版本服务器上就不支持了。

不支持的 OS 版本

新版本刚发布就在 github 上的 issue 上讨论起来了,VScode 官方文档 中也说明了,从 VS Code 版本 1.86.1(2024 年 1 月)开始提高了远程服务器构建工具链的最低要求。VS Code 分发的预构建服务器与基于 glibc 2.28 或更高版本的 Linux 发行版兼容。

当然给服务器升级 glibc 是一个极其危险的操作,本人曾经就瞎捣鼓升级了 glibc,结果导致系统崩溃,不得已重装了系统。

我们可以利用 patchelf 手动指定动态库,避免了重新编译系统的 glibc。

1. 动态链接库下载

github 上有较为方便的下载 glibc 的仓库 glibc-all-in-one

根据仓库的 README,查看支持的版本:cat list

我选择的是 2.31-0ubuntu9.14_amd64,然后执行 ./download 2.31-0ubuntu9.14_amd64

在当前文件夹下会生成 libs 文件夹,就是刚刚下载的 2.31-0ubuntu9.14_amd64 的动态库。

然后执行 ./build 2.31 arm64,这一步会在根目录下编译生成 /glibc 文件夹,可以将其移动到 glibc-all-in-one 文件夹中。

2. 用 patchelf 修改 vscode-server 依赖的 glibc 版本

在执行命令前,先删除 .vscode-server 文件夹,用 vscode 连接服务器,让它自动重新下载 vscode-server 相关文件,这个时候在 ~/.vscode-server/bin 中应该只有一个由数字和字母组成随机字符串的文件夹(我的服务器上是 863d2581ecda6849923a2118d93a088b0745d9d6,不同人应该不一样),进入这个文件夹,有一个 node 二进制文件,我们要重新 patch 的就是这个文件。

执行命令:

patchelf --set-interpreter ~/pack/glibc-all-in-one/libs/2.31-0ubuntu9.14_amd64/ld-linux-x86-64.so.2 --set-rpath ~/pack/glibc-all-in-one/libs/2.31-0ubuntu9.14_amd64/:~/pack/glibc-all-in-one/glibc/2.31/amd64/lib --force-rpath ~/.vscode-server/bin/863d2581ecda6849923a2118d93a088b0745d9d6/node

--set-interpreter 后面跟的是可执行文件的解释器路径,需要指定动态链接器的路径,路径为 ./glibc-all-in-one/libs/[your downloaded glibc version]/ld-linux-x86-64.so.2,动态链接器负责在程序运行时加载所需的共享库。

--set-rpath 这部分设置了可执行文件的运行时搜索路径(Runtime PATH),指定了程序在运行时搜索共享库时应该查找的路径。这里指定了两个路径包含了 glibc 核心库和其他库。这里的路径为 glibc-all-in-one/libs 文件夹下的你下载的不同版本的 glibc 文件夹和编译生成的 glibc/[version]/[arch]/lib 文件夹。

--force-rpath 后面跟的就是要修改的 vscode-server 的 node 文件。

如果执行命令时提示:patchelf: open: Text file busy,将本机上 vscode 运行的远程连接关掉再执行就可以了。

重新打开 vscode,就不会有操作系统版本不支持的提示了~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/775291.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于RK3588多can口多串口机器人全功能板

RK3588机器人控制器有五大技术优势 1. 内置多种功能强大的嵌入式硬件引擎,支持8K60fps 的 H.265 和 VP9 解码器、8K30fps 的 H.264 解码器和 4K60fps 的 AV1 解码器;支持 8K30fps 的 H.264 和H.265 编码器,高质量的 JPEG 编码器/解码器&…

npm 的常见指令及用法

1、npm install moduleNames 安装Node模块 安装完毕后会产生一个node_modules目录,其目录下就是安装的各个node模块。 2、npm view moduleNames 查看项目package.json文件中正在使用的插件版本 3、npm list 查看当前目录下已安装的node包 4、package.jso…

不显示excel中零值方法

excel中想让数字0不显示的方法如下: √去掉则数字格式0不再显示 。若找不到此项,运行以下代码即可: Sub 去除excel中零值() ActiveWindow.DisplayZeros False 不显示零值 End Sub altf11打开vba idea,插入->模块&#xff…

UniRepLKNet:一种用于音频、视频、点云、时间序列和图像识别的通用感知大核卷积神经网络

论文: https://arxiv.org/abs/2311.15599 模型: https://huggingface.co/DingXiaoH/UniRepLKNet/tree/main 主页:https://invictus717.github.io/UniRepLKNet/ contribution 提出了四条guide line用于设计大核CNN架构模型,用于图像识别,语…

elementui日期时间选择框自定义组件

1.需求场景 业务中需要&#xff0c;日期选择框方便客户对日期的选择&#xff08;比如近5天&#xff0c;本周&#xff0c;本月&#xff0c;本年等等&#xff09;&#xff0c;并按小时展示。 2.组件代码MyDateTimeChange.vue <template><el-date-pickerv-model"…

鸿蒙开发之ArkUI组件常用组件图片和文本

ArkUI即方舟开发框架是HarmonyOS应用的UI开发提供了完整的基础设施&#xff0c;包括简洁的UI语法、丰富的UI功能&#xff08;组件、布局、动画以及交互事件&#xff09;&#xff0c;以及实时界面预览工具等&#xff0c;可以支持开发者进行可视化界面开发。 开发文档地址 &…

国赛大纲解读

1. 第一部分,是针对5G基础知识的掌握,第二部分是人工智能基本算法的掌握,就是人工智能的应用,用5G+人工智能(AI算法)进行网络优化的问题,要有网络优化的基础知识,比如说:某个区域的覆盖问题,覆盖特别差,但有数据,覆盖电频,srp值这些数据给你,根据数据来判断是…

linux命令 curl忽略https证书

curl https://www.baidu.com 会提示需要htttps证书&#xff0c;加 -k 即可&#xff0c;如下&#xff1a; curl -k https://www.baidu.com 如果要带头部&#xff0c;认证数据&#xff0c;加-H curl -s -k -H "Authorization: Bearer 651fasgassssgjage2" https:/…

设计模式——行为型——策略模式Strategy

Q&#xff1a;策略模式的特点 A&#xff1a; 具体算法从具体的业务方法中独立出来策略模式是同行为的不同实现 Q&#xff1a;什么时候使用策略模式 A&#xff1a;多个if-else使用策略模式 收费对象类 public class CashContext {private CashStrategy cashStrategy;public…

【C++入门】 初见,单推,与C++的第一次约会

关注小庄 顿顿解馋(ᕑᗢᓫ∗)˒ 引言&#xff1a;本篇博客我们开始与C的第一次约会&#xff0c;C是兼容c的&#xff0c;本篇博客我们将了解到C关键字有哪些&#xff0c;C命名空间&#xff0c;C输入与输出和缺省参数的内容&#xff0c;请放心食用 ~ 文章目录 一 &#x1f3e0; C…

文献阅读工具-->Adobe pdf + 有道词典

Adobe pdf 有道词典 最近一直在考虑用什么文献阅读工具&#xff0c;痛点无非就是想用翻译功能&#xff0c;Adobe pdf的添加注释已经很好用了&#xff0c;使用了zotero&#xff0c;感觉不行&#xff08;不能直接对原文件修改&#xff0c;有副本&#xff0c;麻烦&#xff09;。…

excel匹配替换脱敏身份证等数据

假如excel sheet1中有脱敏的身份证号码和姓名&#xff0c;如&#xff1a; sheet2中有未脱敏的数据数据 做法如下&#xff1a; 1、在sheet2的C列用公式 LEFT(A2,6)&REPT("*",8)&RIGHT(A2,4) 做出脱敏数据&#xff0c;用来与sheet1的脱敏数据匹配 2、在sheet…

clickhouse 双引号符串查询报错 Missing columns: required columns:

select dbname from rds_all_slow_sql_record_local where dbname"leopard_know" limit 10;ERROR 47 (00000): Code: 47. DB::Exception: Missing columns: ‘leopard_know’ while processing query: ‘SELECT dbname FROM rds_all_slow_sql_record_local WHERE db…

182. 查找重复的电子邮箱

文章目录 题意思路代码 题意 题目链接 思路 通过子查询&#xff0c;来弄 代码 select email as Email from (select email, count(email) as cnt from Person group by email) as t where t.cnt > 1;

AWS基础网络产品及协同架构-Networking

简介 一个完整的AWS网络架构图&#xff0c;包含了如下能力&#xff1a; Users (用户): 表示使用AWS服务的用户或系统。 SaaS (软件即服务): 表示在AWS上运行的软件服务&#xff0c;如企业微信可能作为SaaS提供。 example.com?: 这可能是一个示例域名&#xff0c;用于展示如何…

快速上手Spring Cloud 十:Spring Cloud与微前端

快速上手Spring Cloud 一&#xff1a;Spring Cloud 简介 快速上手Spring Cloud 二&#xff1a;核心组件解析 快速上手Spring Cloud 三&#xff1a;API网关深入探索与实战应用 快速上手Spring Cloud 四&#xff1a;微服务治理与安全 快速上手Spring Cloud 五&#xff1a;Spring …

分享多种mfc100u.dll丢失的解决方法(一键修复DLL丢失的方法)

在使用电脑过程中&#xff0c;我们经常会遇到一些陌生的DLL文件&#xff0c;例如mfc100u.dll。这些DLL文件是动态链接库&#xff08;Dynamic Link Libraries&#xff09;的缩写&#xff0c;它们包含了可以被多个程序共享的代码和数据。今天&#xff0c;我们将深入探讨mfc100u.d…

深度学习:基于PyTorch的模型解释工具Captum

深度学习&#xff1a;基于PyTorch的模型解释工具Captum 引言简介示例安装解释模型的预测解释文本模型情绪分析问答 解释视觉模型特征分析特征消融鲁棒性 解释多模态模型 引言 当我们训练神经网络模型时&#xff0c;我们通常只关注模型的整体性能&#xff0c;例如准确率或损失函…

python爬虫基础----字符串高级

哈喽小伙伴们&#xff0c;大家好&#xff01;今天我们学习的内容是字符串的高级操作 一、字符串高级 字符串的常见操作包括&#xff1a; 获取长度:lenlen函数可以获取字符串的长度。len函数可以获取字符串的长度。查找指定内容在字符串中是否存在&#xff0c;如果存在就返回…

Pillow教程06:将图片中出现的黄色和红色,改成绿色

---------------Pillow教程集合--------------- Python项目18&#xff1a;使用Pillow模块&#xff0c;随机生成4位数的图片验证码 Python教程93&#xff1a;初识Pillow模块&#xff08;创建Image对象查看属性图片的保存与缩放&#xff09; Pillow教程02&#xff1a;图片的裁…