JetBrains WebStorm が Windows Subsystem for Linux にインストールされている Linux ディストリビューションを検出しない

JetBrains WebStorm が Windows Subsystem for Linux にインストールされている Linux ディストリビューションを検出しない

Windows Subsystem for Linux にインストールされた Ubuntu または Debian Linux ディストリビューション上の WebStorm で利用可能なデバッグ機能を使用して、nodejs コードをデバッグしようとしています。

以下の Web サイトに記載されている指示に従いましたが、WebStorm のインストールではシステムにインストールされている Linux ディストリビューションが検出されず、wslconfig.exe を使用して既定のディストリビューションをすでに設定しています。

wslconfig.exe からインストールされたディストリビューションのリスト

さらに、システムに Linux ディストリビューションがインストールされていることを WebStorm に手動で伝える方法がないようです。

下のスクリーンショットを参照してください: WebStorm WSL ディストリビューション nodejs 選択画面のスクリーンショット

質問:

  1. WSL ディストリビューション検出に関連して、WebStorm で不足している構成設定はありますか?
  2. WebStorm で Linux ディストリビューションを検出するにはどうすればよいですか?

ご注意ください:これは、ターミナルの使用だけでなく、WebStorm を使用したブレーク デバッグ機能用です。ターミナルを問題なく実行できましたが、WebStorm で利用できるデバッグ機能が必要です。

答え1

ディストリビューションを~\.WebStorm2019.1\config\options\wsl.distributions.xml手動で追加してみてください。https://youtrack.jetbrains.com/issue/PY-32424#focus=streamItem-27-3332472.0-0https://www.jetbrains.com/help/ruby/configuring-remote-interpreters-using-wsl.html#custom_wsl詳細については、こちらを参照してください。実行可能ファイルへのフルパスを指定する必要があることに注意してください。短縮名は、デフォルトのインストール ルートでのみ機能します。

答え2

Windows ストアを使用してインストールされていないバージョンの WSL を実行している場合、これが問題になる可能性があります。JetBrains には公式の修正プログラムがありますが、デフォルトの方法で Linux ディストリビューションをインストールする別の方法が必要な場合は、PowerShell で次のコードを実行できます。

$REGKEY="HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate"
$REGITEM = "DoNotConnectToWindowsUpdateInternetLocations"

function Set-RegistryItem {
    param (
        # Registry key to set
        [Parameter(Mandatory=$true)]
        [string]
        $RegistryKey,

        # Registry item to set
        [Parameter(Mandatory=$true)]
        [string]
        $RegistryItem,

        # Value to Set
        [Parameter(Mandatory=$true)]
        [string]
        $Value,

        # Value type to Set
        [Parameter(Mandatory=$true)]
        [string]
        $Type
    )

    if ($(Get-ItemProperty -Path Registry::$RegistryKey -Name $RegistryItem)) {
        New-ItemProperty -Path Registry::$RegistryKey -Name $RegistryItem -PropertyType $Type -Value $Value -Confirm -Force
    }
}

Set-RegistryItem `
    -RegistryKey "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" `
    -RegistryItem DoNotConnectToWindowsUpdateInternetLocations `
    -Value 0 `
    -Type DWord

Set-RegistryItem `
    -RegistryKey HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\WindowsStore `
    -RegistryItem AutoDownload `
    -Value 4 `
    -Type DWord

Set-RegistryItem `
    -RegistryKey HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\WindowsStore `
    -RegistryItem RemoveWindowsStore `
    -Value 0 `
    -Type DWord

これにより、Windows ストアが一時的に有効になり、必要なプログラム (Linux ディストリビューション) をインストールできるようになります。グループ ポリシーによって PowerShell の実行が禁止されている場合は、残念ながら実行できません。

さらに、グループ ポリシーによって無効にされている場合、コンピューターを再起動すると Windows ストアは無効になります。

Linux ディストリビューションが Windows ストア経由でデフォルトの方法でインストールされると、JetBrians はそれをほぼ即座に取得します。

関連情報