VSCodeで"code"コマンドをinstallしたはずなのに、"command not found"になる → VSCodeの場所を見直そう
Visual Studio Codeは、ターミナルからcode
コマンドで起動するように設定できます。
ところが、Visual Studio Codeを終了するたびに、なぜかcode
コマンドが効かなくなってしまいました。
原因はVSCodeがDownloadsフォルダにあったせいでした。
参考: github.com
検証
どうしてDownloadsフォルダのVSCodeがcode
コマンドを維持できないのか、試してみました。
まずはcode
コマンドを設定して...
code
コマンドについて調べてみる
$ which code /usr/local/bin/code $ ls -l $(which code) lrwxr-xr-x 1 hiroaki wheel 167 Jul 18 19:38 /usr/local/bin/code -> /private/var/folders/zb/d8jy9vyx53vbv1t5mgwj06rw0000gn/T/AppTranslocation/877962BA-DEEA-4883-BB3D-F6F6B276C7F9/d/Visual Studio Code.app/Contents/Resources/app/bin/code # VSCodeを終了すると... $ which code # 何も表示されない
なんだこれ!ものすごい変なところにいるぞ。
一方、ちゃんとApplicationのVSCodeを起動してcode
を設定した場合は、
ogasawarahiroaki-no-MacBook-Pro:~ hiroaki$ which code /usr/local/bin/code ogasawarahiroaki-no-MacBook-Pro:~ hiroaki$ ls -l $(which code) lrwxr-xr-x 1 hiroaki wheel 68 Jul 18 19:44 /usr/local/bin/code -> /Applications/Visual Studio Code.app/Contents/Resources/app/bin/code # VSCodeを終了しても... $ which code /usr/local/bin/code
どうやら、Downloadsフォルダのアプリケーションはいったん一時フォルダにコピーされてから実行されるらしい。
DLL読み込み脆弱性みたいなのの対策かな...?