当前位置: 首页 > news >正文

最新版VSCode通过SSH远程连接Ubuntu 16.04等旧版Linux的方法

根据官方文档Remote Development FAQ - Can I run VS Code Server on older Linux distributions?,自Visual Studio Code 1.99起,VSCode Remote - SSH Server由于运行库依赖更新,会无法连接到旧版Linux发行版上。但是好在官方在文档中还给了临时解决办法。这里我搬运一下,其中遇到了一些问题参考了Ssh Remote have problem in old server,如果你也是Ubuntu 16.04的话按下面的方法应该没有问题,以下操作无特别说明的话都是在Linux中进行操作,有些下载操作需要科学。

  1. 编译安装crosstool-NG
sudo apt-get install -y gcc g++ gperf bison flex texinfo help2man make libncurses5-dev python3-dev autoconf automake libtool libtool-bin gawk wget bzip2 xz-utils unzip patch rsync meson ninja-build
wget http://crosstool-ng.org/download/crosstool-ng/crosstool-ng-1.26.0.tar.bz2
tar -xjf crosstool-ng-1.26.0.tar.bz2 && cd crosstool-ng-1.26.0
./configure && make && sudo make install
  1. 用crosstool-NG编译新版sysroot,其中包含所需的新版运行库
mkdir toolchain-dir && cd toolchain-dir
wget https://github.com/microsoft/vscode-linux-build-agent/raw/refs/heads/main/x86_64-gcc-8.5.0-glibc-2.28.config
mv x86_64-gcc-8.5.0-glibc-2.28.config .config
ct-ng menuconfig
# 在menuconfig图形菜单中,将“Operating System”选项下的“Version of linux”改为不高于你系统的Linux内核版本。你的版本可以通过uname -a命令查看,比如我这里就改为了4.14.319。选择好以后在底部菜单先Save再Exit。
ct-ng build
# 这个过程需要下载编译一堆东西,耐心等待二十分钟
  1. 下载安装patchelf
wget https://github.com/NixOS/patchelf/releases/download/0.18.0/patchelf-0.18.0-x86_64.tar.gz
sudo tar -zxf patchelf-0.18.0-x86_64.tar.gz -C /
  1. 随便找个二进制测试一下是否可用,可以用gcc现编一个,注意修改为你的路径:
gcc hello_world.c
./a.out
patchelf --set-interpreter /path/to/toolchain-dir/x86_64-linux-gnu/x86_64-linux-gnu/sysroot/lib/ld-linux-x86-64.so.2 --set-rpath /path/to/toolchain-dir/x86_64-linux-gnu/x86_64-linux-gnu/sysroot/lib64 a.out
./a.out
ldd a.out
  1. 设置环境变量,将以下内容放到你~/.bashrc文件的开头!务必是开头!
export VSCODE_SERVER_CUSTOM_GLIBC_LINKER=/path/to/toolchain-dir/x86_64-linux-gnu/x86_64-linux-gnu/sysroot/lib/ld-linux-x86-64.so.2
export VSCODE_SERVER_CUSTOM_GLIBC_PATH=/path/to/toolchain-dir/x86_64-linux-gnu/x86_64-linux-gnu/sysroot/lib64
export VSCODE_SERVER_PATCHELF_PATH=/bin/patchelf
  1. 现在可以在VSCode上通过SSH尝试连接到本Linux上了!

相关文章:

  • 中国近代史3
  • 阿里开源通义万相 Wan2.1-VACE,开启视频创作新时代
  • 【工具】metaTP:一种集成了自动化工作流程的元转录组数据分析工具包
  • git 本地提交后修改注释
  • YOLO11解决方案之距离计算探索
  • NVIDIA Omniverse 现已支持中文!
  • 1. 数字组合1
  • 实验6 电子邮件
  • nohup命令使用
  • 投影仪基础知识及选购方向小记①
  • 【MySQL】基础知识
  • 北京孙河傲云源墅:限量典藏的主城墅居臻品
  • VMware虚拟机 安装 CentOS 7
  • 深入解析浏览器内核:V8 引擎与渲染引擎 Blink 的协作机制
  • 从入门到实战:时序图核心知识与高效绘制全解析(附模板)
  • WHAT - 前端开发流程 SOP(标准操作流程)参考
  • Spring类
  • C++文件操作--1 文本文件操作
  • vllm serve到底是如何运行的?(2)
  • 文件目录与检索综合练习题
  • 央视起底“字画竞拍”网络传销案:涉案44亿元,受害者众多
  • 埃尔多安:愿在土耳其促成俄乌领导人会晤
  • 中国科学院院士、我国航天液体火箭技术专家朱森元逝世
  • 颜福庆与顾临的争论:1930年代在中国维持一家医学院要花多少钱
  • 大外交|巴西总统卢拉第六次访华签署20项协议,“双方都视对方为机遇”
  • 日本广岛大学一处拆迁工地发现疑似未爆弹