背景:

在使用vs code连接远程服务器时,除了需要下载ssh相关的插件,vscode还会在本地下载vscode server,并上传到Linux服务器,使得二者可以通过ssh远程连接。

由于我使用的本地电脑和Linux服务器都是离线状态,所以在通过ssh远程连接时,本地电脑无法自动下载vscode server并上传给服务器,所以一直报错:vscode server下载失败。

后面查了一下,需要手动下载并上传至服务器对应位置。

当我们在本地 VS Code 中使用 Remote-SSH 连接远程服务器时,VS Code 并不能直接“远程打开”文件,需要在服务器上运行一个小型的后台服务程序,这就是 VS Code Server

VS Code Server 的作用,可以简单理解为:

  • 它在远程服务器上运行,负责和本地 VS Code 通信;

  • 把本地的编辑器界面、插件功能、调试工具“映射”到远程环境;

通常情况下,VS Code 第一次连接远程服务器时,远程服务器自动联网下载并安装 VS Code Server。但在离线环境中,这一步就会失败,所以需要手动把 VS Code Server 打包好,拷贝到服务器上。

具体方法:

1. 首先要获取你下载的vscode 的版本号

打开vs code->左上角help(Windows)->about->复制commit id

2. 离线下载vscode server,并放到指定目录下

根据vscode版本不同,这一步有两种处理方式(可以两种都试试):

注意:本文中所有${commit_id}都要替换成上一步查到的commit id

2.1 旧版(1.89之前)

a. 查询Linux系统是x86还是arm:

uname -a

b. 根据linux系统下载对应的安装包,安装包下载地址如下:

x86:
https://update.code.visualstudio.com/commit:${commit_id}/server-linux-x64/stable
arm:
https://update.code.visualstudio.com/commit:${commit_id}/server-linux-arm64/stable

c. 放在指定目录

下载的文件为 vscode-server-linux-x64.tar.gz ;

上传到服务器上任意位置;

解压后得到名为 vscode-server-linux-x64 的文件夹;

文件夹改名为 ${commit_id} ;

放在 /home/${user}/.vscode-server/bin/ 目录下.

2.2 新版(1.89之后)

a. 下载安装包

需要安装两个文件,下载地址如下:

x86:
https://vscode.download.prss.microsoft.com/dbazure/download/stable/${commit_id}/vscode-server-linux-x64.tar.gz
https://vscode.download.prss.microsoft.com/dbazure/download/stable/${commit_id}/vscode_cli_alpine_x64_cli.tar.gz

arm:
https://vscode.download.prss.microsoft.com/dbazure/download/stable/${commit_id}/vscode-server-linux-arm64.tar.gz
https://vscode.download.prss.microsoft.com/dbazure/download/stable/${commit_id}/vscode_cli_alpine_arm64_cli.tar.gz

b. 新版的目录结构有变化,两个文件需要放在不同的目录下

# 按照如下结构搭建好文件目录
📦.vscode-server
 ┣━ 📁bin  # 旧方法下存放vscode server相关文件的位置
 ┃   ┗━ 📁${commit_id1}
 ┃   ┗━ 📁${commit_id2}
 ┃   ┗━ ···
 ┣━ 📁cli  # 新方法下存放vscode server相关文件的位置
 ┃   ┗━ 📁servers
 ┃   ┃   ┗━ 📁Stable-${commit_id}
 ┃   ┃   ┃   ┗━ 📁server ## 【第一个文件】
 ┃   ┃   ┃   ┗━ ···
 ┃   ┃   ┗━ ···
 ┃   ┗━ 📜iru.json  # 存放最近的vscode commit_id
 ┣━ 📜code-${commit_id}  # vscode_cli_alpine_x64_cli.tar.gz解压后获取名为code的文件,将其改名为code-${commit_id}放在这(注意:这个就是code改名后的文件,不是新建文件夹放里面)
 ┣━ 📁data
 ┗━ 📁extensions

第一个文件 vscode-server-linux-x64.tar.gz ;解压后得到名为 vscode-server-linux-x64 的文件夹;改名为 server ;放在 /home/${user}/.vscode-server/cli/servers/Stable-${commit_id}/ 目录下.

第二个文件 vscode_cli_alpine_x64_cli.tar.gz ;解压后得到名为 code 的文件;改名为 code-${commit_id};放在/home/${user}/.vscode-server/目录下

注意,这个文件直接改名可能会失败,可以用命令行:

mv code code-${commit_id}

iru.json文件中内容为:

["Stable-${commit_id}"]

好啦,到这一步就大功告成了!

3. 报错以及解决办法

如果完成之后还显示“正在下载VS Code server”,可能需要重新排查一下文件目录是不是有问题。

我一开始就是因为code文件直接在目录中改名会失败,以为是不能改名,所以就误把code放在了/home/${user}/.vscode-server/code-${commit_id}文件夹下,但是其实此处的/home/${user}/.vscode-server/code-${commit_id}是改名后的code文件,不是文件夹。

上面那个目录里面文件夹和文件的图标是不同的,改好后就不会再自动下载vscode server了 ,应该是可以找到文件了。
      
参考:https://blog.csdn.net/qq_43623902/article/details/136258880

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐