代码先锋网 代码片段及技术文章聚合

远程服务器离线安装vscode及扩展组件

技术标签: experience  Linux  tools

1. 场景

  本地(Windows 10)安装了vscode,因为环境、资源等都是在服务器上(Ubuntu),因此想要通过vscode远程连接服务器,实现在本地操作服务器的目标。vscode在2019年对上述目标的支持已经很完(sha)善(gua)了,只需要安装几个和Remote相关的扩展插件(Extensions)就可以了,可以通过图形界面一键安装,这里不再赘述了,我在前期使用的时候也很顺畅。
  后来远程服务器网络出现了一些问题,可以正常本地建立连接,但在使用一些常见的更新管道(pip,wget,apt-get等)时总是会超时致使更新失败。可以简单地认为,“远程服务器只能只能建立内网链接,无法访问外网了”。
  本来不耽误使用,内网就内网反正环境啥的都配好了也不碍事,就没管它,直到有一天发现本地vscode无法连接到远程服务器了,核心报错如下:

Waiting for /home/user/.vscode-server/bin/a0479759d6e9ea56afa657e454193f72aef85bd0/vscode-scp-done.flag and vscode-server.tar.gz to exist
...... ......
...... ......
.vscode-server/bin/a0479759d6e9ea56afa657e454193f72aef85bd0: No such > file or directory

2. 问题分析

  核心问题是 vscode-server下的某个文件夹不存在,看这一大长字符串,猜测是版本号相关的描述。首先查看了一下本地vscode的版本号,Help-->About,发现是1.48.2版本,也就是官网上的最新版本,那么问题就已经定位出来了:windows本地的服务器自动更新版本,而远程服务器并没有进行相应的更新(大概率是因为网络问题),导致服务器和本地vscode —— vscode_server版本不匹配,因而无法成功建立连接。vscode在不同系统中的更新机制如下图所示,如果本地和服务器的外网网络都十分通畅,可以不用管,否则建议把本地的 update.mode 参数设置为 none,防止本地自动更新导致版本不匹配的问题。

p1

官网对vscode更新的相关描述

3. 问题解决

  手动下载a0479759d6e9ea56afa657e454193f72aef85bd0文件夹,并放在报错信息中指定的位置。下载可直接通过链接下载:
https://update.code.visualstudio.com/commit:26076a4de974ead31f97692a0d32f90d735645c0/server-linux-x64/stable

注意::根据报错信息,修改上述链接你所需要的commit id,然后再下载,这一步骤更详细的教程可以参照:手动下载与放置文件夹
注意:按教程将文件夹放置好后,可能需要给整个文件夹赋读写权限,我这边不赋权限是会报错:

chmod -x -R a0479759d6e9ea56afa657e454193f72aef85bd0
# 我直接赋 root 的全部权限了,如果账号没有root权限可以把-R去掉

4. 手动下载扩展插件(Extensions)

  在vscode上主要进行python开发,必不可少的一个库是Python extension for Visual Studio Code,有了这个库,我们可以自由地切换和使用远程服务器(或本地)的python环境,并使用语法检查、函数与类的跳转等方便的功能,最新版本的python extension还可以支持在vscode中使用jupyter notebook,简直不要太方便,然而这个库也被我整甭了,原因大致可以描述为我有使用最新版本的强迫症,vscode extension也需要本地和远程服务器的版本对齐,我只能更新本地的python插件,而无法一键更新远程服务器上的python插件。vscode python插件官网
  解决方法和之前的类似,也是本地手动下载-->传到服务器上-->手动安装这一套流程。庆幸地是vscode为我们提供了VSIX的离线安装方式,不需要再从源码编译。[官网的描述如下:]

p2.png

  我的具体操作是:

  • 在本地下载python扩展插件的vsix文件ms-python-release.vsix,并上传到远程服务器
  • 为服务器上的vsix文件赋权限:chmod -x -R ms-python-release.vsix
  • 在vscode中,ctrl+shift+p打开命令行,输入Extensions: install from VSIX,选中上一步上传好的 vsix 文件,开始安装
  • 重启 vscode,正常使用 python 插件

python extension 的 vsix 文件可以在github上下载:https://github.com/Microsoft/vscode-python/releases

5. 总结

  网上的问答帖(stackoverflow、github)、博客(SCDN等)可以帮助我们快速定位问题并找到解决办法,但最准确的问题定位方式离不开耐心分析报错信息,完整的解决问题则离不开官方API和教程

遇到问题,分析问题,解决问题,记录过程。

版权声明:本文为weixin_44489823原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44489823/article/details/114791597

智能推荐

Rmote + VSCode 修改远程服务器文件

Note:不能打开文件夹 foo/ is a directory and rmate is unable to handle directories. 参考 https://www.cnblogs.com/learn21cn/p/6189023.html https://raw.githubusercontent.com/aurora/rmate 本机 vscode 安装 Remote VSCod...

使用VScode查看远程服务器代码

目录 使用VScode查看远程服务器代码 安装VSCode以及配置ssh 解决Bad owner or permissions 使用VScode查看远程服务器代码 安装VSCode以及配置ssh 参考《Remote-SSH配置–如何配置VSCode远程开发》https://blog.starunity.dev/2019/05/08/remote-ssh-configure/ 解决Bad...

本地win10 vscode远程连接服务器

1、本地生成秘钥文件,id_rsa,id_rsa_pub 2、本地生成配置文件config,配置如下: 3、vscode设置setting--> 输入remote-ssh --> Remote.SSH: Config File,输入地址 C:\Users\yangqie\.ssh\config 4、连接服务器即可。...

vscode SSH远程连接服务器-ssh key

VsCode: 版本: 1.43.0 (user setup) 提交: 78a4c91400152c0f27ba4d363eb56d2835f9903a 日期: 2020-03-09T19:47:57.235Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_N...

VSCode通过跳板机远程连接服务器

vscode remote 关于vscode 的远程连接参见《VS Code Remote Development》 通过跳板机 上述提到的方式是直接连接,如果需要使用跳板机,其他方面都一样,除了配置文件需要多加一行。参见: which means run ssh in quiet mode (using -q) and in stdio forwarding(using -w) mode, re...

猜你喜欢

vscode通过跳板机连接远程服务器

使用背景 一般实验室等环境的服务器是设置在内网环境中的,无法直接使用笔记本在公共环境下直接连接。但是由于种种原因,会出现在这样的场景下需要连接服务器的需求,而通过跳板机是一种常见的办法。 一般通过ssh先后连接跳板机再跳转至服务器的方法,在编程时仅能通过vim等工具使用命令行环境,十分不方便。 本文在vscode的环境下,通过跳板机连接到远程服务器,从而实现在服务器编写程序时,与在本地vscode...

vscode通过跳板连接远程服务器docker容器

目的:深度学习不能在本机跑吧,丢服务器上,那怎么debug呢??曾经的我全靠print… 下载vscode,安装remote-ssh插件 不详细说了… docker内配置ssh 在目标服务器里开一个docker容器,用-p把容器的端口22转到服务器的5222: 【远程服务器容器】设置 root 账户密码: 根据提示设置密码即可。如果你启动容器的时候使用 -u 参数指定了...

windows 的vscode 无法链接远程服务器

错误1:Could not establish connection to "xx.xx.x.x" 错误2:使用vscode 的remote-server 无法链接服务器,没有输入密码的地方 错误3 :初始化链接失败   此外 如果没有输入密码的地方 请将  配置1:必须要安装最新版本的git for windows 配置2:C:\Users\Fizz\.s...

VsCode + Remote-SSH 链接远程服务器开发

不仅仅是WSL,其实是任何服务器! 详细配置可参考下面这个链接,文章写的很棒,找了很久才在这个文章里找到解决办法。 本文参考链接 简单流程供博主自行使用: 将生成好的私钥拷贝到 windows 个人用户的 .ssh 目录下 在对应的 .ssh 目录下编写配置文件 config, 参考如下: 在 VsCode 中,安装好 Remote-SSH 插件,重启后调用插件的 Content to Host ...

使用vscode连接远程服务器遇到的坑

1、PytorchStreamReader failed reading zip archive: failed finding central directory 网上搜到的解决方案都是关于torch的版本问题,我这个问题就很坑。。由于vscode直接拖拽文件上传不稳定,在本地训练好的模型上传到服务器时,有些文件内容没有上传成功,导致整个文件只上传了一部分…如果运行文件,就会出现这...