VS Code Remote SSH远程连接异常:Resolver error: Error: Running the contributed command

问题描述

通过VS Code插件Remote - SSH连接一台新主机时,提示错误:

Resolver error: Error: Running the contributed command: ‘_workbench.downloadResource’ failed.

原因分析

查看VS Code的日志发现,原来是因为新主机没有tar命令,导致插件无法在远程主机上安装好插件需要的服务。

日志如下:

tar --version:
main: line 416: tar: command not found
main: line 417: tar: command not found
mv: cannot stat ‘vscode-server*/*’: No such file or directory
ERROR: /root/.vscode-server/bin/3866c3553be8b268c8a7f8c0482c0c0177aa8bfa/node or
/root/.vscode-server/bin/3866c3553be8b268c8a7f8c0482c0c0177aa8bfa/server.sh don
't exist

解决方案

  1. 安装tar

    sudo yum install -y tar
    
  2. 清空上次错误安装的文件

    rm -rf ~/.vscode-server
    
  3. 重新连接即正常。

扩展

Remote SSH首次连接插件做了什么

  1. 连接远程主机
  2. 在远程主机当前用户目录下下载vscode-server压缩文件
  3. 通过tar解压并安装vscocde-server

Remote SSH对于远程Linux的要求

Linux版本基本要求Remote - SSH 要求备注
通用版kernel >= 3.10, glibc >=2.17, libstdc++ >= 3.4.18, Python 2.6 or 2.7, tarOpenSSH server, bash, 和 curlwget执行ldd --version 来检查glibc版本. 执行strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX来查看libstdc++ 3.4.18是否可用.
Ubuntu 16.04+, Debian 8+, Raspbian Stretch/9+ 和下游版本libc6 libstdc++6 python-minimal ca-certificates taropenssh-server bashcurlwget要求kernel >= 3.10, glibc >= 2.17, libstdc++ >= 3.4.18. Debian < 8 (Jessie)和Ubuntu < 14.04不符合这个要求。
RHEL / CentOS 7+glibc libgcc libstdc++ python ca-certificates taropenssh-server bashcurlwget要求kernel >= 3.10, glibc >= 2.17, libstdc++ >= 3.4.18.
RHEL / CentOS < 7不升级glibc和libstdc++则不符合要求。
Alpine Linux 3.9+musl libgcc libstdc++. musl >= 1.1.18, 不需要glibc。尚未支持。支持容器和WSL 。
由于扩展本机代码中的glibc 依赖性,安装在容器中的扩展可能无法工作。
openSUSE Leap / SUSE Linux Enterprise 15+glibc libgcc_s1 libstdc++6 python ca-certificates gzip tarcurl 或 `wget要求kernel >= 3.10, glibc, libstdc++6

若文章有误,或你有什么见解,欢迎留言指正和交流。
原创不易,若有所帮助,欢迎点赞、收藏。

### 解决方案 当遇到远程主机不满足VS Code Server运行前提条件的错误时,通常是因为远程Linux系统的库文件版本过低,特别是`glibc`和`libstdc++`这两个库。这可能导致VS Code无法正常安装或启动远程服务器组件。 #### 方法一:升级远程主机上的依赖库 为了使VS Code能够顺利部署并运行于远程机器上,建议尝试更新这些必要的软件包: 对于基于Debian/Ubuntu的操作系统: ```bash sudo apt-get update && sudo apt-get upgrade -y sudo apt-get install -y libc6 libgcc1 libstdc++6 ``` 针对RedHat/CentOS系列发行版,则应执行如下命令来获取最新版本的基础库支持: ```bash sudo yum update -y sudo yum install -y glibc libstdc++ ``` 通过上述操作可确保目标设备具备足够的环境配置以承载VSCode所需的最低限度资源需求[^1]。 #### 方法二:降级本地VS Code客户端至兼容版本 如果暂时不方便修改生产环境中使用的操作系统镜像或是担心更改现有设置带来其他风险的话,另一个可行的办法便是考虑将本机端Visual Studio Code应用程序回滚到之前稳定工作的历史发布版本。例如,在某些情况下,用户反馈指出从较新的1.86版本切换回到相对稳定的1.85版本解决了连接问题[^3]。 下载指定旧版本可以通过访问官方存档页面完成此过程,并遵循相应指南进行离线安装覆盖当前实例。 #### 方法三:清理残留数据重试建立链接 有时即使一切看起来都已准备妥当但仍会遭遇障碍,这时不妨试着清除掉上次未成功创建的服务端缓存目录再做一次完整的初始化流程试试看。具体做法是在终端里输入以下指令移除`.vscode-server`整个文件夹结构后再发起新一轮握手请求[^4]: ```bash rm -rf ~/.vscode-server/ ``` 这样做的目的是让工具链有机会在一个干净的状态下去评估远端状况从而做出更合理的决策处理方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值