Ubuntu22.04 Server中VSCode Remote-SSH无法正常安装vscode-server
VSCode Remote-SSH安装vscode-server失败:依赖已存在但仍提示不满足前置要求
问题详情
使用VSCode 1.92.2搭配Remote-SSH Extension V0.11连接Ubuntu 22.04 LTS服务器时,vscode-server安装进程中断,连接被取消。远程主机~/.vscode-server日志提示:
[2024-08-27 12:09:24] error This machine does not meet Visual Studio Code Server's prerequisites, expected either...
- 在GNU环境中找到libstdc++.so或ldconfig
- 在musl环境中找到运行VSCode Server所需的/lib/ld-musl-x86_64.so.1
但通过root用户执行命令确认相关库已安装:
# locate libstdc++.so /usr/lib/gcc/x86_64-linux-gnu/11/libstdc++.so
# ldconfig -p |grep libstdc++.so libstdc++.so.6 (libc6,x86-64) => /lib/x86_64-linux-gnu/libstdc++.so.6
# locate ld-musl-x86_64.so.1 /usr/lib/ld-musl-x86_64.so.1
# ldconfig -p |grep musl ld-musl-x86_64.so.1 (libc6,x86-64) => /lib/ld-musl-x86_64.so.1
尝试降级VSCode到1.85.2版本未解决问题,已恢复至1.92.2;使用OpenSSH客户端可正常连接主机。
解决方案
1. 确认连接用户的环境权限与变量
- 切换到VSCode Remote-SSH连接使用的普通用户,执行
ldconfig -p | grep libstdc++.so,确认输出与root用户一致。 - 若输出为空或路径缺失,手动将库路径添加到用户环境变量:
echo 'export LD_LIBRARY_PATH=/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH' >> ~/.bashrc source ~/.bashrc
2. 手动安装vscode-server
跳过自动安装流程,手动部署对应版本的vscode-server:
- 获取本地VSCode对应的server版本号:打开本地VSCode,按
Ctrl+Shift+P执行Remote-SSH: Show Local Server Log,复制包含commit:行的ID(例如commit: abc123)。 - 远程主机创建对应目录:
mkdir -p ~/.vscode-server/bin/<commit-id> - 下载与本地VSCode 1.92.2匹配的vscode-server压缩包,上传到上述目录后解压:
tar -xzf vscode-server-linux-x64.tar.gz --strip-components=1 - 赋予执行权限:
chmod +x ~/.vscode-server/bin/<commit-id>/server.sh
3. 验证libstdc++版本兼容性
VSCode Server对libstdc++版本有要求,执行以下命令检查是否包含所需版本:
strings /lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX
确认输出中包含GLIBCXX_3.4.29及以上版本(Ubuntu 22.04的gcc 11默认满足该要求)。
4. 调整Remote-SSH扩展配置
- 在VSCode设置中搜索
remote.SSH.serverInstallPath,确认路径为默认的~/.vscode-server。 - 将
remote.SSH.useLocalServer设置为false,强制远程端执行安装流程。
5. 更新ldconfig缓存
以root权限执行以下命令更新库缓存,然后重新尝试连接:
ldconfig
内容的提问来源于stack exchange,提问作者Carlos Sanchez
相关产品推荐
相关产品推荐

