使用remote-ssh 在 VS Code 中设置全局环境变量

nso*_*the 11 remote-server visual-studio-code

我的情况是,我需要使用 Windows 10 上安装的 VS Code,并在 RHEL 7.x 上使用扩展Remote - SSH运行它。
默认 RHEL 7.x 与 git 1.8.x 一起运行。我已经安装了较新的 git 版本,但这不在默认的 $PATH 环境中。

我发现这个说明https://code.visualstudio.com/docs/remote/wsl#_advanced-environment-setup-script描述了如何在使用 WSL 时专门为 VS Code 设置环境变量。

如果您想运行其他命令或修改环境,可以在设置脚本 ~/.vscode-server/server-env-setup 中完成

这似乎仅在您使用 WSL 时才有效。为什么这不能与远程 SSH 扩展一起使用?

我的特殊情况是,我在使用 VS Code 时只想要并且需要 git>=2 。当我通过 ssh 定期连接时,我想要并且需要操作系统默认工具和设置。
这给了我一个特殊的请求,即我不想编辑~/.bashrc~/.cshrc任何其他用户环境文件。
我希望能够仅编辑 VS Code 的环境。某种,也许像:

#!/bin/bash
export PATH=/opt/rh/rh-git29/root/usr/bin\:$PATH
export LD_LIBRARY_PATH=/opt/rh/httpd24/root/usr/lib64:$LD_LIBRARY_PATH
...
Run Code Online (Sandbox Code Playgroud)
#!/bin/csh
setenv PATH /opt/rh/rh-git29/root/usr/bin\:$PATH
setenv LD_LIBRARY_PATH /opt/rh/httpd24/root/usr/lib64:$LD_LIBRARY_PATH
...
Run Code Online (Sandbox Code Playgroud)

有什么我还没有找到的地方可以让我的请求起作用吗?或者这是否是对 VS Code 团队的某种请求?

问候。

小智 15

我想我在这个问题评论和后续回复中找到了解决方案:

  • 当 vscode-server 最初启动时,它使用登录 shell,.profile在您的主目录中获取数据。
  • 但是,通过 VS Code 启动的任何以下交互式 shell 都是非登录 shell,因此仅是源代码.bashrc
  • 摆弄这个问题的一个复杂之处是 vscode-server 显然在其生命周期内缓存了环境,因此对这些点文件的更改在服务器重新启动之前不会变得可见。

  • 自我注意:相关命令称为“Remote-SSH:Kill VS Code Server on Host”。但它对我来说不能正常工作,所以我选择了旧的服务器端“killall node”。 (10认同)