Примечание. Повторное использование некоторых моих ответов на этот вопрос. В вопросе достаточно различий, чтобы потребовать несколько изменений, но некоторые из основных концепций одинаковы.
Часть «автоматического обновления» приложения Store более чем сбивает с толку. Да, «Ubuntu» (без номера версии) в Магазине «автоматически обновляется», но это, вероятно, не означает то, что вы думаете. Мне потребовалось некоторое время, чтобы привыкнуть к этой концепции.
Это немного сложно объяснить, но когда вы устанавливаете «Ubuntu» (без версии) из Магазина, вы на самом деле получаете три различные «установки»:
Сам WSL, конечно, как обязательное условие. На самом деле здесь установлено ядро Linux, поскольку оно используется всеми установленными дистрибутивами/экземплярами WSL2.
«Пакет приложения» с пакетом rootfs (установить.tar.gz
) в C:\Program Files\WindowsApps\CanonicalGroup...
. Вы можете увидеть это, запустив административную оболочку PowerShell и запустив Get-ChildItem -Recurse 'C:\Program Files\WindowsApps\Canonical*' | Где-Объект {$_.Name -eq 'install.tar.gz' }
.
При первом запуске (через Ubuntu.exe
), установщик создает фактический экземпляр WSL в вашем %UserProfile%\AppData\Local\Packages\CanonicalGroup...
.
Что на самом деле делает «автоматическое обновление» приложения Store?
Когда в Магазине появляется новое обновление приложения, в вашей системе обновляется только пакет rootfs. Оно делает нет измените установленный пример. Оно делает нет автоматически обновлять любой из пакетов в вашем пример. Он даже не обновляет ядро WSL2.
Вам все еще нужно бежать обновление sudo apt && обновление sudo apt -y
(или аналогичный) для регулярного обновления пакетов. Обратите внимание, что это не включает ядро — смотрите ниже, как это сделать.
Как я думаю, вы можете видеть из вашего вопроса, это хорошо. В противном случае вы будете конкурировать между обновленными пакетами «Магазина» и пакетами из репозитория.
(Примечание на сайте: кредит и благодарность u/zoredache на Reddit, который первоначально разъяснил это для меня.)
Так в чем смысл?
В любом случае, обновление пакета Store бесполезно для большинства пользователей, если только вы не:
Отмените регистрацию экземпляра (что удалит всю конфигурацию) и заново настройте его, повторно запустив Ubuntu.exe
команда. При выполнении этой начальной конфигурации rootfs распаковывается, поэтому вы получите «самую последнюю и самую лучшую» из Магазина в этот момент. Однако обратите внимание, что выпуски Store по-прежнему довольно редки по сравнению с обновлениями пакетов в официальных репозиториях. Даже сразу после установки из Магазина вы все равно почти всегда будете получать ряд обновлений через подходящий
.
Хотите использовать это установить.tar.gz
для создания второго экземпляра WSL/Ubuntu (используя wsl --импорт
). Вновь созданный экземпляр будет использовать обновленную из Store папку rootfs. Опять же, к пакетам репо применяются те же предостережения, что и в первом сценарии.
Ни один из этих сценариев не очень распространен. Даже когда неверсионный Store Убунту
обновляется до (предположительно) 22.04, это не изменит ваш установлен экземпляр 20.04, только rootfs упаковка.
В этот момент вам все равно нужно запустить sudo сделать-релиз-обновление-d
когда вы в конечном итоге захотите перейти на 22.04 (или промежуточный выпуск).
Обновление ядра
Обратите внимание, что ни обновление Магазина, ни подходящий
(или другие методы пакета) обновить ядро WSL2. Поскольку ядро является частью самого WSL2 и используется всеми установленными дистрибутивами, оно обрабатывается по-разному. Использовать:
wsl --обновить
... для проверки и загрузки любых обновлений ядра WSL2.
Это предполагает, что вы используете ядро по умолчанию. У вас есть возможность загрузить или собрать собственное ядро с Исходный код ядра WSL2. По моему опыту, может пройти несколько дней или недель, прежде чем обновление ядра станет доступным через wsl --обновить
, поэтому, если вы хотите получить самое последнее и самое лучшее, вы можете это сделать. Затем настройте WSL2 для использования этого ядра через .wslconfig
.
Еще кое-что
При всем при этом приложение «Ubuntu» (неверсированное) по-прежнему имеет одно преимущество: вам не нужно беспокоиться об изменении его имени (как в том другом вопросе), когда вы в конечном итоге обновитесь до более поздней версии. Версия «Ubuntu 20.04» всегда будет иметь имя экземпляра Убунту-20.04
, даже если и когда вы вручную обновили его до чего-то позже.