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

记录vscode连接不上wsl子系统下ubuntu18.04问题解决方法

记录vscode连接不上wsl子系统下ubuntu18.04问题解决方法

    • 报错内容
    • 尝试第一次解决方法
    • 尝试第二次解决方法
    • 注意事项
    • 参考连接

报错内容

Unable to download server on client side: Error: Request downloadRequest failed unexpectedly without providing any details… Will try to download on WSL side. vscode
–2025-04-07 16:33:04-- https://update.code.visualstudio.com/commit:4437686ffebaf200fa4a6e6e67f735f3edf24ada/server-linux-legacy-x64/stable
[2025-04-07 08:33:05.151] Resolving update.code.visualstudio.com (update.code.visualstudio.com)… 13.107.246.50, 2620:1ec:bdf::50
[2025-04-07 08:33:05.151] Connecting to update.code.visualstudio.com (update.code.visualstudio.com)|13.107.246.50|:443… connected.
[2025-04-07 08:33:05.436] HTTP request sent, awaiting response… 404 Not Found
[2025-04-07 08:33:05.436] 2025-04-07 16:33:05 ERROR 404: Not Found.
[2025-04-07 08:33:05.436]
[2025-04-07 08:33:05.436] ERROR: Failed to download https://update.code.visualstudio.com/commit:4437686ffebaf200fa4a6e6e67f735f3edf24ada/server-linux-legacy-x64/stable to /home/zl/.vscode-server/bin/4437686ffebaf200fa4a6e6e67f735f3edf24ada-1744014784.tar.gz

尝试第一次解决方法

  1. 升级wsl 未能解决
  2. 回退vscode版本 未能解决
  3. 重启计算机 未能解决
  4. 删除服务器目录并重新连接
rm -rf ~/.vscode-server

此步解决了上面的报错,又出现新的报错,如下:
/home/zl/.vscode-server/bin/4437686ffebaf200fa4a6e6e67f735f3edf24ada/node: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28’ not found (required by /home/zl/.vscode-server/bin/4437686ffebaf200fa4a6e6e67f735f3edf24ada/node)

尝试第二次解决方法

mkdir ~/src
cd ~/src

wget 'https://ftp.gnu.org/gnu/glibc/glibc-2.28.tar.gz'
tar xzf glibc-2.28.tar.gz

mkdir glibc-2.28-build
cd glibc-2.28-build
../glibc-2.28/configure --prefix=/opt/glibc-2.28

make

# make sure you can write to /opt/glibc-2.28
make install

其中遇到使用prefix命令修改指定编译目录出错,报错如下:

../configure --prefix=/opt/glibc-2.28/
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking for gcc... gcc
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for readelf... readelf
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking whether g++ can link programs... yes
checking for sysdeps preconfigure fragments... aarch64 alpha arm hppa i386 m68k microblaze mips nios2 powerpc riscv s390 sh sparc x86_64 checking whether gcc compiles in -mx32 mode by default... no

checking for use of fpu sysdeps directories... yes
checking for -fstack-protector... yes
checking for -fstack-protector-strong... yes
checking for -fstack-protector-all... yes
checking for assembler and linker STT_GNU_IFUNC support... yes
checking for gcc attribute ifunc support... yes
checking if compiler warns about alias for function with incompatible types... no
checking sysdep dirs... sysdeps/unix/sysv/linux/x86_64/64 sysdeps/unix/sysv/linux/x86_64 sysdeps/unix/sysv/linux/x86 sysdeps/x86/nptl sysdeps/unix/sysv/linux/wordsize-64 sysdeps/x86_64/nptl sysdeps/unix/sysv/linux sysdeps/nptl sysdeps/pthread sysdeps/gnu sysdeps/unix/inet sysdeps/unix/sysv sysdeps/unix/x86_64 sysdeps/unix sysdeps/posix sysdeps/x86_64/64 sysdeps/x86_64/fpu/multiarch sysdeps/x86_64/fpu sysdeps/x86/fpu sysdeps/x86_64/multiarch sysdeps/x86_64 sysdeps/x86 sysdeps/ieee754/float128 sysdeps/ieee754/ldbl-96 sysdeps/ieee754/dbl-64/wordsize-64 sysdeps/ieee754/dbl-64 sysdeps/ieee754/flt-32 sysdeps/wordsize-64 sysdeps/ieee754 sysdeps/generic
checking for a BSD-compatible install... /usr/bin/install -c
checking whether ln -s works... yes
checking whether as is GNU as... yes
checking whether ld is GNU ld... yes
checking for as... as
checking version of as... 2.30, ok
checking for ld... ld
checking version of ld... 2.30, ok
checking for gnumake... no
checking for gmake... no
checking for make... make
checking version of make... 4.1, ok
checking for gnumsgfmt... no
checking for gmsgfmt... no
checking for msgfmt... msgfmt
checking version of msgfmt... 0.19.8.1, ok
checking for makeinfo... no
checking for sed... sed
checking version of sed... 4.4, ok
checking for gawk... gawk
checking version of gawk... 4.1.4, ok
checking for bison... no
checking if gcc is sufficient to build libc... yes
checking for nm... nm
checking for python3... python3
configure: error:
*** These critical programs are missing or too old: bison
*** Check the INSTALL file for required versions. 

看报错日志是编译glibc-2.28时出现的bison缺失或版本过旧的问题,于是

sudo apt-get update
sudo apt-get install bison

安装bison后再次执行

../configure --prefix=/opt/glibc-2.28/

成功修改编译指定编译目录。

安装"patchelf"

sudo apt-get update
sudo apt-get install patchelf
cd ~/.vscode-server/bin/4437686ffebaf200fa4a6e6e67f735f3edf24ada
cp node node_bak
patchelf --set-interpreter /opt/glibc-2.28/lib/ld-linux-x86-64.so.2 --set-rpath /opt/glibc-2.28/lib:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu node

至此glibc-2.28安装及链接到新安装的glibc-2.28完成,vscode可以正常连接到wsl扩展中的ubuntu18.04。

注意事项

编译并覆盖安装glibc会导致系统崩溃,编译的时候一定要指定prefix,千万不能把系统中原有的lib给覆盖了。

参考连接

本文解决方案参考连接出处:

https://github.com/microsoft/vscode/issues/210033

相关文章:

  • LeetCode 3375 题解
  • LibreOffice 自动化操作目录
  • 常见算法模板总结
  • 高压安全新挑战:新能源汽车三电系统绝缘材料的漏电流与击穿特性研究
  • 如何判断家里的宽带是否有公网IPv4或公网IPv6
  • 14 GIS地类面积统计终极指南:3步速通「栅格VS矢量」双线操作
  • 洛谷 P11962:[GESP202503 六级] 树上漫步 ← dfs + 邻接表
  • 从静态绑定驱动模型到现代设备模型 —— 一次驱动架构的进化之旅
  • 第一讲、IsaacLab创建空场景
  • 【Rust开发】Rust快速入门,开发出Rust的第一个Hello World
  • 【Hadoop入门】Hadoop生态之Hive简介
  • Pycharm常用快捷键总结
  • pytorch小记(十七):PyTorch 中的 `expand` 与 `repeat`:详解广播机制与复制行为(附详细示例)
  • [定位器]晶艺LA1823,4.5V~100V, 3.5A,替换MP9487,MP9486A,启烨科技
  • 2025.4.9总结
  • c++比较器——priority_queue用 ; unordered_map 自定义哈希函数
  • 基于Redis实现短信防轰炸的Java解决方案
  • 唯一分解定理
  • 系统与网络安全------网络通信原理(4)
  • 每日算法:洛谷U535992 J-C 小梦的宝石收集(双指针、二分)
  • 焦作建设银行门户网站/定制开发公司
  • 全国生猪价格今日猪价行情表查询/短视频seo代理
  • 网站建设招标书模板/杭州seo关键字优化
  • 哪些是网站建设/品牌营销策划方案案例
  • 用brackets做网站/网上商城推广13种方法
  • 怎样做类似于优酷的视频网站/宁波网络推广优化公司