概要
VSCodeにてGCP上のインスタンスにて開発環境を構築しているので、VSCodeのRemoteSSHを用いてGCP上のインスタンスに接続して、開発作業を行なっている者だ。今回、codeコマンドがある日突然RemoteSSH先のVSCodeにて使用できなくなったので、その対処法を下記に示す。ざっと調べた限りでは、クリティカルな解決方法はなかったので備忘録的に記載する。尚、筆者はzshを用いてる。
事象
RemoteSSH先のVSCodeのTerminalにて下記の事象が発生した。
$ code
zsh: command not found: code
原因
/home/{USER_NAME}/.vscode-server/bin/{COMMIT}/bin
にPATHが通っているのが通常の状態なのだが、その配下にcode
が存在しないため、not foundになる。では、どこにcode
が存在しているかというと、/home/{USER_NAME}/.vscode-server/bin/{COMMIT}/bin /remote-cli/
である。どうやら配置が変わったのかわからないが、PATHが通ってないだけなら話が早い
$ echo $PATH | grep vscode
PATH={OTHER_PATHs}:/home/{USER_NAME}/.vscode-server/bin/{COMMIT}/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/usr/local/go/bin
$ pwd
/home/{USER_NAME}/.vscode-server/bin/{COMMIT}/bin
$ tree
.
├── code-server
├── helpers
│ └── browser.sh
└── remote-cli
└── code
解決
下記を.zshrcに追加する(bashなら.bash_profileやら.bashrcやらに)ことで、PATHをremote-cli
まで通してあげれば良い
# vscode
if [[ ! -z VSCODE_IPC_HOOK_CLI ]]; then
for i in $(ls ~/.vscode-server/bin); do
export PATH=$HOME/.vscode-server/bin/$i/bin/remote-cli:$PATH
done
fi