Puncte:6

cum să actualizați pachetele Ubuntu în WSL alături de actualizarea automată a Microsoft Store

drapel cn

Am început să folosesc WSL2 și am instalat Ubuntu fără un anumit număr de versiune. Înțeleg că se va actualiza automat la următoarea versiune majoră LTS (acum este 20.04 și presupun că va fi 22.04 anul viitor).

Atunci, cum rămâne cu pachetele din interior? Eu pot actualizare apt și upgrade apt toate, dar Microsoft Store se actualizează automat și cu versiuni Ubuntu mai noi, care cred că vor suprascrie o parte din actualizarea mea manuală. Ar trebui să le las și să actualizez doar pachetele pe care le-am instalat singur? Care ar fi cea mai bună practică?

Puncte:7
drapel vn

Notă: Reutilizarea unei părți din răspunsul meu la această întrebare. Există suficientă diferență în întrebare pentru a necesita câteva modificări, dar unele dintre conceptele de bază sunt aceleași.

Partea „actualizare automată” a aplicației Magazin este mai mult decât puțin confuză. Da, „Ubuntu” (fără un număr de versiune) din Magazin „se actualizează automat”, dar asta probabil că nu înseamnă ce crezi că înseamnă. Mi-a luat puțin să mă obișnuiesc eu cu acest concept.

Acest lucru este puțin greu de explicat, dar când instalezi „Ubuntu” (fără versiune) din Magazin, ajungi de fapt cu Trei diferite „instalații”:

  • WSL în sine, desigur, ca o condiție prealabilă. Aici este de fapt instalat nucleul Linux, deoarece este partajat între toate distribuțiile/instanțele WSL2 instalate.

  • Un „pachet de aplicații” cu un pachet rootfs (install.tar.gz) în C:\Program Files\WindowsApps\CanonicalGroup.... Puteți vedea acest lucru pornind și rulând un PowerShell administrativ Get-ChildItem -Recurse „C:\Program Files\WindowsApps\Canonical*” | Unde-Obiect {$_.Name -eq 'install.tar.gz' }.

  • Când rulați pentru prima dată (via ubuntu.exe), programul de instalare creează instanța dvs. WSL reală în dvs %UserProfile%\AppData\Local\Packages\CanonicalGroup....

Ce face cu adevărat un „upgrade automat” al aplicației Magazin?

Când există o nouă actualizare a aplicației în Magazin, singurul lucru care este actualizat pe sistemul dvs. este pachetul rootfs. Da nu schimbați instalat instanță. Da nu actualizați automat oricare dintre pachetele din dvs instanță. Nici măcar nu actualizează nucleul WSL2.

Mai trebuie să fugi sudo apt update && sudo apt upgrade -y (sau echivalent) pentru a actualiza pachetele în mod regulat. Rețineți că acest lucru nu include nucleul -- Vezi mai jos cum să faci asta.

După cum cred că puteți vedea din întrebarea dvs., acesta este un lucru bun. În caz contrar, ai concura între pachetele actualizate „Magazin” și cele din repo.

(Notă de site: mulțumiri și mulțumiri lui u/zoredache pe Reddit care mi-a clarificat inițial acest lucru.)

Deci ce rost are?

Oricum, upgrade-ul pachetului Magazin este destul de inutil pentru majoritatea utilizatorilor, cu excepția cazului în care:

  1. Anulați înregistrarea instanței (care șterge toată configurația) și reconfigurați-o prin rularea din nou a ubuntu.exe comanda. Când parcurgeți acea configurație inițială, rootfs este dezambalat, astfel încât veți obține „cele mai recente și mai bune” din Magazin în acel moment. Cu toate acestea, rețineți că lansările din magazin sunt încă destul de rare în comparație cu actualizările pachetelor din depozitele oficiale. Chiar și imediat după instalarea din Magazin, veți primi aproape întotdeauna o serie de actualizări apt.

  2. Vrei să folosești asta install.tar.gz pentru a crea oa doua instanță WSL/Ubuntu (folosind wsl --import). Instanța nou creată va folosi apoi rootf-urile actualizate în magazin. Din nou, se aplică aceleași avertismente despre pachetele repo ca și în primul scenariu.

Niciunul dintre aceste scenarii nu este foarte comun. Chiar și atunci când Magazinul neversionat Ubuntu este actualizat la (probabil) 22.04, nu vă va schimba instalat instanța 20.04, doar rootfs pachet.

În acel moment, va trebui în continuare să rulați a sudo do-release-upgrade -d când doriți să faceți upgrade la 22.04 (sau o versiune intermediară).

Actualizarea nucleului

Rețineți că nici actualizarea magazinului, nici apt (sau alte metode de pachet) actualizați nucleul WSL2. Deoarece nucleul face parte din WSL2 în sine și este partajat între toate distribuțiile instalate, este tratat diferit. Utilizare:

wsl --update

... pentru a verifica și descărca orice actualizare a nucleului WSL2.

Asta presupune că utilizați nucleul implicit. Aveți opțiunea de a descărca sau de a construi propriul kernel din Sursa kernel-ului WSL2. Experiența mea a fost că poate dura câteva zile sau săptămâni pentru ca actualizarea nucleului să devină disponibilă prin wsl --update, așa că dacă doriți să luați cele mai recente și mai bune, puteți. Apoi configurați WSL2 pentru a utiliza acel nucleu prin .wslconfig.

Inca un lucru

Toate acestea fiind spuse, aplicația „Ubuntu” (neversionată) are încă un avantaj și este că nu va trebui să vă faceți griji cu privire la schimbarea numelui (ca în acea altă întrebare) atunci când în cele din urmă faceți upgrade la o ediție ulterioară. Versiunea „Ubuntu 20.04” va avea întotdeauna numele instanței Ubuntu-20.04, chiar dacă și când l-ați actualizat manual la ceva mai târziu.

drapel cn
Mulțumesc pentru explicația detaliată! M-a surprins că actualizarea automată a Magazinului nici măcar nu actualizează nucleul... bine de știut.
NotTheDr01ds avatar
drapel vn
@leoce Corect! Și nucleul este, de asemenea, o cu totul altă poveste. Am actualizat răspunsul pentru a acoperi asta.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.