Различные профили одного и того же экземпляра WSL2 Linux в Windows Terminal

Различные профили одного и того же экземпляра WSL2 Linux в Windows Terminal

У меня Ubuntu-22.04 установлена ​​в WSL2 на Windows 10. Однако в моем settings.json есть два профиля Windows Terminal. Один из них, должно быть, появился после какого-то обновления, его не было с самого начала. Я дважды проверил, оба профиля относятся к одному и тому же экземпляру linux WSL2. Еще больше меня сбивает с толку то, что каждый из профилей приводит к разному визуальному виду.

Я хотел бы узнать, как вообще работает "автоматическое" добавление профилей терминала, а также что именно произошло в моем конкретном случае. Вот соответствующая часть settings.json:

{
    "guid": "{f9ceaf27-504c-58d7-927c-d1d6a7ac7d3c}",
    "hidden": false,
    "name": "Ubuntu 22.04.1 LTS",
    "source": "CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc"
},
{
    "guid": "{07b52e3e-de2c-5db4-bd2d-ba144ed6c273}",
    "hidden": false,
    "name": "Ubuntu-22.04",
    "source": "Windows.Terminal.Wsl"
}

решение1

Я не могу точно определить, какой путь обновления вызвал у вас эту проблему, но я обнаружил отдельную связанную ошибку в обновлении WSL Ubuntu, которая произошла вчера.

Но сначала поясним два разных профиля терминала, которые вы видите:

  • Первый — это профиль, созданный Canonical специально для Ubuntu. Это Windows TerminalРасширение фрагмента JSONкоторый входит в пакет Store. Если хотите, можете проверить его, открыв сеанс административного PowerShell и выполнив:

    Get-ChildItem -Recurse 'C:\Program Files\WindowsApps\' | Where-Object {$_.Name -eq 'terminal.json' }
    

    У вас может быть больше одного. Вы можете просмотреть его, используя путь и:

    Get-Content 'C:\Program Files\WindowsApps\CanonicalGroupLimited.Ubuntu20.04LTS_2004.4.5.0_x64__79rhkp1fndgsc\Terminal\Fragments\terminal.json'
    

    Если путь, указанный выше, отличается, откорректируйте его в соответствии с местоположением вашего пакета.

    Одна вещь, которую выдолженсм. что-то вроде:

    {
        "updates": "{07b52e3e-de2c-5db4-bd2d-ba144ed6c273}",
        // We have to hide this autogenerated profile as we can't change the name of existing profiles.
        // This would use WSLID like "Ubuntu-20.04" which is hard to read.
        "hidden": true
    },
    

    Это должно означатьследующийпрофиль скрыт, но похоже, что с обновлением дела обстоят немного «плохо».

  • Второй — это автоматически сгенерированный профиль. Когда запускается Windows Terminal, он по сути сканирует все установленные вами дистрибутивы WSL и автоматически генерирует профиль для каждого из них.

    Есть вероятность, что простое закрытие Windows Terminal и перезапуск удалят старую запись и запустят повторное сканирование с новым, обновленным GUID.

Но, несмотря на это, нет ничего плохого в том, чтобы пометить автоматически сгенерированную версию как «Скрытую». Это то, что в конечном итоге должно произойти в любом случае. Затем вы увидите только версию Canonical/Ubuntu с иконкой и цветовой схемой Ubuntu.

Связанный контент