Visual Studio Code 如何在离线环境下安装远程调试(vscode-server)以及安装各种插件

公司的生产环境里的服务器是禁止了绝大多数互联网连接的,但是有些环境又只有生产环境里有。为了方便,以前总是直接ssh进去用vim写代码,但是总觉得效率还是不够高。(这是我的问题😄)。另一个方法是在本地机器上写好代码,然后rsync过去一把梭。但是写一些稍大的工程的时候,一把梭很难成功。今天决定趁周末解决这种“非技术问题”。

远程搬砖码字调试的意思如下图:
vscode-remote-dbg-arch

画个重点就是:

  • 本地机器上安装好VS Code;
  • 远程机器上安装好调试工具(vscode-server);
  • 代码留在远程机器上,本地机器仅作为”文本编辑器”这样的前端界面;

本地机器安装远程调试插件(Remote Development Extension)

这个步骤没什么难度,因为本地机器是可以连上网的。在VS Code的Extension页面搜索”Remote Development”安装便是。
这边提一句,笔者的环境是“墙中墙”,运行VS Code的也是一个“虚拟机”,里面也没网。像这样的情况,需要根据远程连接的类型(SSH, WSL, Docker…)选择具体的插件,比如SSH的话去 https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-ssh 这个页面,点击右侧的”Download Extension”下载一个vsix后缀的文件传到墙里面。然后选择下图”…”里面的”Install from VSIX”离线安装

install_from_vsix.PNG

离线安装vscode-server调试服务器

正常安装完远程调试插件以后,左侧边栏会多出一个远程连接的tab. 创建一个连接以后,右键那个连接选择”connect to host using new window”会新建一个窗口连接远程服务器。右下角会弹出一个泡泡提示正在安装什么的,这时候要点击”details”看一下详情。这个步骤因为没有网络,它是永远无法完成的…除非我们人为帮他下载好了放好

install_vs_debug_server.PNG
留意上图红框中的commit hash,我们需要从微软官网手工把这个东西下载下来。

找个有网的机器,去下载https://update.code.visualstudio.com/commit:${commit_id}/server-linux-x64/stable,地址里面的${commit_id}用刚才红框里的代替。下载下来应该是个tar文件,然后把它传到你的远程机器上一个临时位置,这边存放的文件夹用/tmp代替.
随后操作:

  1. 创建vscode-server的文件夹
  2. 解压缩
  3. touch一个0文件,表示加载已经全部完成
    具体bash如下:
mkdir -p ~/.vscode-server/bin/${commit_id}
# assume that you upload vscode-server-linux-x64.tar.gz to /tmp dir
tar zxvf /tmp/vscode-server-linux-x64.tar.gz -C ~/.vscode-server/bin/${commit_id} --strip 1
touch ~/.vscode-server/bin/${commit_id}/0

搞定之后,重新执行刚才的连接远程服务器的操作。这时候如果去看details会发现VS Code认为服务器文件已经下载好了,于是他就会开始各种部署。

离线安装扩展插件到远程服务器

成功连接后你会发现一些本地装好的插件在远程是没有的。比如下图中的C++插件就是处于本地有但是远程没有的状态。这种插件一般都是需要获取编译运行环境的,由于本地无法模拟远程环境,所以必须要在远程装对应插件。

remote_ext_vscode.PNG

离线安装远程插件其实不难。将上文提到的VSIX离线文件下载了传到远程服务器上后(注意vsix有些是区分平台的,要和远程服务器平台一致,而非本地),可以直接安装。

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.