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

10

我有这样一种情况,需要在安装了Windows 10上的VS Code并使用Remote - SSH扩展的RHEL 7.x上运行。
默认的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。为什么这不能与Remote - 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
...

#!/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
...

我是否还有其他地方可以发出工作请求,或者这应该是一种向VS Code团队提出的请求?

谢谢。

2个回答

11

我认为我在此问题的评论和后续回复中找到了解决方案:

  • 当vscode-server最初启动时,它使用一个登录shell,在您的主目录中来源于.profile
  • 但是,通过VS Code启动的任何后续交互式shell都是非登录shell,因此只会来源于.bashrc
  • 在处理此问题时的一个复杂之处在于,vscode-server显然在其生命周期内缓存环境变量,因此对这些点文件的更改直到服务器重新启动后才能生效。

10
备忘录:相关命令称为“Remote-SSH: Kill VS Code Server on Host”。但是对我来说它没有正常工作,所以我选择了老式的服务器端killall node - Martin Cejp
1
经过多次 VSC 更新后,我开始在 settings.json 中使用 "git.path": "<git_location>",它可以很好地与 SSH 存储库配合使用。 - nsolthe
在我的情况下,我必须创建一个 ~/.bash_profile 文件:source ~/.zshrc 然后执行 killall node 命令。这样做可以正常工作,但是对设置进行更改并不适用于我。 - Tiana987642

0

我有一个更好的解决方案来最小化代理范围

export http_proxy=<proxy here>
export no_proxy=<no proxy here>
while IFS= read -r _file; do
    if ! grep -s -q "export http_proxy=" "${_file}"; then
        sed -i -e "/^ROOT/i export http_proxy=${http_proxy}" -e "/^ROOT/i export https_proxy=${http_proxy}" -e "/^ROOT/i export no_proxy=${no_proxy}" "${_file}"
    fi
done < <(find ~/.vscode-server/bin -type f -name "server.sh")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接