VS Code Insiders - シェル認識問題の解決法
VS Code Insiders をターミナルから code-insiders コマンドで起動しようとしたとき、EACCES: permission denied エラーが発生することがあります。このページでは、エラーの原因と2つの解決方法を手順付きで説明します。
対象読者: VS Code Insiders でシェルコマンドが認識されないエラーに遭遇した方
学習時間の目安: 読了 10分 + 実践 15分
前提知識: VS Code Insiders のインストール済み、ターミナルの基本操作
- macOS を使用していること
- VS Code Insiders がインストール済みであること
- ターミナル(Terminal または iTerm2)が使えること
問題の概要:EACCES エラーとは
Section titled “問題の概要:EACCES エラーとは”EACCES(Error: Access)とは、ファイルやディレクトリへのアクセス(読み書き・削除)が拒否されたときに発生するエラーです。
VS Code Insiders が code-insiders コマンドを /usr/local/bin にシンボリックリンクとして登録しようとすると、このディレクトリが root 所有のため一般ユーザーに書き込み権限がなく、インストールに失敗します。
EACCES: permission denied, unlink '/usr/local/bin/code-insiders'このエラーが起きると、ターミナルで code-insiders . を実行しても zsh: command not found: code-insiders と表示されてしまいます。
解決策1:所有権を変えてシンボリックリンクを手動作成する
Section titled “解決策1:所有権を変えてシンボリックリンクを手動作成する”/usr/local/bin のオーナーを自分のアカウントに変更し、シンボリックリンクを手動で作成します。
ステップ1:現在の権限を確認する
ls -ld /usr/local/bin期待される出力(オーナーが root:wheel の場合は要変更):
drwxr-xr-x 7 root wheel ... /usr/local/binステップ2:所有権を自分のアカウントに変更する
sudo chown -R $(whoami):admin /usr/local/bin管理者パスワードの入力が求められます。
ステップ3:古いリンクを削除し、新しいリンクを作成する
sudo rm -f /usr/local/bin/code-insiders
sudo ln -s "/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/bin/code-insiders" /usr/local/bin/code-insidersステップ4:動作を確認する
code-insiders --versionバージョン番号が表示されれば成功です。
⚠️ 注意
/usr/local/binの所有権を変更すると、Homebrew など他のツールが影響を受ける場合があります。変更後に Homebrew が正常に動作するか確認してください。
解決策2:alias で代替コマンドを設定する
Section titled “解決策2:alias で代替コマンドを設定する”/usr/local/bin への書き込みが難しい場合は、シェルの alias(エイリアス)機能を使って代替コマンドを設定します。この方法は権限まわりをいじらずに済むため、よりシンプルです。
ステップ1:~/.zshrc に alias を追加する
# ~/.zshrc に追加
alias code-insiders="open -n -a 'Visual Studio Code - Insiders' --args"エディタで直接追加するか、以下のコマンドで追記できます。
echo 'alias code-insiders="open -n -a '"'"'Visual Studio Code - Insiders'"'"' --args"' >> ~/.zshrcステップ2:設定を反映する
source ~/.zshrcステップ3:動作を確認する
code-insiders .カレントディレクトリを VS Code Insiders で開けば成功です。
💡 ヒント alias は現在のシェルセッションでのみ有効です。
source ~/.zshrcを実行するか、ターミナルを再起動することで新しいウィンドウでも有効になります。
解決策の比較
Section titled “解決策の比較”| 項目 | 解決策1(所有権変更) | 解決策2(alias) |
|---|---|---|
| 手軽さ | やや複雑(sudo が必要) | シンプル |
| 他ツールへの影響 | Homebrew 等に影響する可能性あり | なし |
完全な code-insiders コマンド | 利用可能 | open コマンド経由 |
| 推奨度 | 根本解決として有効 | 素早く試したい場合に有効 |
よくあるつまづきポイント
Section titled “よくあるつまづきポイント”インストール場所が異なる
VS Code Insiders が /Applications 直下にない場合、パスが異なります。インストール場所を確認してください。
find /Applications -name "code-insiders" -type f 2>/dev/nullターミナルの再起動を忘れた 設定変更後にターミナルを再起動していない場合、変更が反映されません。以下のコマンドで即時反映できます。
exec $SHELL -l通常の VS Code と混同している VS Code Insiders と通常の VS Code は別アプリです。アプリ名・パス・コマンドがそれぞれ異なります。
| 項目 | 通常版 | Insiders 版 |
|---|---|---|
| アプリ名 | Visual Studio Code | Visual Studio Code - Insiders |
| コマンド | code | code-insiders |
| ステップ | コマンド |
|---|---|
| 権限確認 | ls -ld /usr/local/bin |
| 所有権変更 | sudo chown -R $(whoami):admin /usr/local/bin |
| リンク再作成 | sudo ln -s "…/code-insiders" /usr/local/bin/code-insiders |
| alias での代替(オプション) | alias code-insiders="open -n -a 'Visual Studio Code - Insiders' --args" |
よくある質問
Section titled “よくある質問”Q: sudo を使うのは安全ですか?
A: sudo は管理者権限でコマンドを実行します。今回のコマンドは自分の環境の設定変更に限られるため、内容を理解した上で実行する範囲では問題ありません。不明なコマンドには使わないようにしてください。
Q: Homebrew を使って code-insiders をインストールできますか?
A: Homebrew Cask で brew install --cask visual-studio-code-insiders としてインストールした場合は、シェルコマンドが自動で設定されることがあります。既存インストールとの競合に注意してください。
Q: Fish シェルを使っている場合はどうすればよいですか?
A: Fish シェルの alias は ~/.config/fish/config.fish に設定します。alias code-insiders "open -n -a 'Visual Studio Code - Insiders' --args" を追加し、source ~/.config/fish/config.fish で反映してください。