หมายเหตุ: นำคำตอบบางส่วนของฉันไปใช้ซ้ำ คำถามนี้. มีความแตกต่างเพียงพอในคำถามที่ต้องการการเปลี่ยนแปลงเล็กน้อย แต่แนวคิดหลักบางส่วนก็เหมือนกัน
ส่วน "อัปเกรดอัตโนมัติ" ของแอป Store นั้นสร้างความสับสนมากกว่าเล็กน้อย ใช่ "Ubuntu" (ไม่มีหมายเลขเวอร์ชัน) ใน Store "อัปเดตอัตโนมัติ" แต่นั่นอาจไม่ได้หมายความว่าอย่างที่คุณคิด ฉันใช้เวลาเล็กน้อยในการทำความคุ้นเคยกับแนวคิดนี้ด้วยตัวเอง
นี่เป็นเรื่องยากที่จะอธิบาย แต่เมื่อคุณติดตั้ง "Ubuntu" (ไม่มีเวอร์ชัน) จาก Store คุณจะลงเอยด้วย สาม "การติดตั้ง" ที่แตกต่างกัน:
แน่นอนว่า WSL นั้นเป็นข้อกำหนดเบื้องต้น นี่คือตำแหน่งที่ติดตั้งเคอร์เนล Linux เนื่องจากมีการแชร์ระหว่างการแจกจ่าย / อินสแตนซ์ WSL2 ที่ติดตั้งทั้งหมด
"แพ็คเกจแอป" ที่มีแพ็คเกจ rootfs (install.tar.gz
) ใน C:\Program Files\WindowsApps\CanonicalGroup...
. คุณสามารถดูสิ่งนี้ได้โดยเริ่ม PowerShell การดูแลระบบและเรียกใช้ Get-ChildItem -Recurse 'C:\Program Files\WindowsApps\Canonical*' | Where-Object {$_.Name -eq 'install.tar.gz' }
.
เมื่อเรียกใช้เป็นครั้งแรก (ผ่าน ubuntu.exe
) โปรแกรมติดตั้งจะสร้างอินสแตนซ์ WSL จริงของคุณใน %UserProfile%\AppData\Local\Packages\CanonicalGroup...
.
"การอัปเกรดอัตโนมัติ" ของแอป Store ทำอะไรได้บ้าง
เมื่อมีการอัปเดตแอปใหม่ใน Store สิ่งเดียวที่จะได้รับการอัปเดตในระบบของคุณคือแพ็คเกจ rootfs มันไม่ ไม่ เปลี่ยนการติดตั้งของคุณ ตัวอย่าง. มันไม่ ไม่ อัปเดตแพ็คเกจใด ๆ ในของคุณโดยอัตโนมัติ ตัวอย่าง. มันไม่ได้อัปเดตเคอร์เนล WSL2
คุณยังต้องวิ่ง อัปเดต sudo apt && sudo apt อัปเกรด -y
(หรือเทียบเท่า) เพื่ออัพเดทแพ็คเกจเป็นประจำ โปรดทราบว่าสิ่งนี้ไม่รวมเคอร์เนล -- ดูวิธีการด้านล่าง
ตามที่ฉันคิดว่าคุณเห็นได้จากคำถามของคุณนี่เป็นสิ่งที่ดี มิฉะนั้น คุณจะต้องแข่งขันระหว่างแพ็คเกจอัปเกรด "Store" กับแพ็คเกจจาก repo
(หมายเหตุไซต์: เครดิตและขอบคุณ u/zoredache บน Reddit who เดิมชี้แจงนี้สำหรับฉัน.)
แล้วประเด็นคืออะไร?
อย่างไรก็ตาม การอัปเกรดแพ็คเกจ Store ค่อนข้างไร้ประโยชน์สำหรับผู้ใช้ส่วนใหญ่ เว้นแต่คุณจะ:
ยกเลิกการลงทะเบียนอินสแตนซ์ (ซึ่งจะลบการกำหนดค่าทั้งหมด) และกำหนดค่าใหม่โดยเรียกใช้อีกครั้ง ubuntu.exe
สั่งการ. เมื่อผ่านการกำหนดค่าเริ่มต้นนั้น rootfs จะถูกคลายแพ็ก ดังนั้นคุณจะได้รับ "ล่าสุดและดีที่สุด" จาก Store ณ จุดนั้น อย่างไรก็ตาม โปรดทราบว่าการเปิดตัวของ Store นั้นยังค่อนข้างไม่บ่อยนักเมื่อเทียบกับการอัปเดตแพ็คเกจใน repos อย่างเป็นทางการ แม้จะติดตั้งทันทีจาก Store คุณก็ยังได้รับการอัปเดตอยู่เสมอ ฉลาด
.
ต้องการใช้สิ่งนั้น install.tar.gz
เพื่อสร้างอินสแตนซ์ WSL/Ubuntu ที่สอง (โดยใช้ wsl -- นำเข้า
). อินสแตนซ์ที่สร้างขึ้นใหม่จะใช้ rootfs ที่อัปเดตโดย Store คำเตือนเดียวกันนี้ใช้กับแพ็คเกจ repo เช่นเดียวกับในสถานการณ์แรก
ไม่มีสถานการณ์เหล่านี้เกิดขึ้นบ่อยนัก แม้ว่าจะเป็น Store ที่ไม่มีเวอร์ชัน อูบุนตู
ได้รับการอัปเดตเป็น (น่าจะเป็น) 22.04 มันจะไม่เปลี่ยนแปลงของคุณ ติดตั้งแล้ว อินสแตนซ์ของ 20.04 เพียง rootfs บรรจุุภัณฑ์.
เมื่อถึงจุดนั้น คุณยังคงต้องเรียกใช้ sudo do-release-upgrade -d
เมื่อคุณต้องการอัปเกรดเป็น 22.04 (หรือรุ่นชั่วคราว) ในที่สุด
การอัพเกรดเคอร์เนล
โปรดทราบว่าทั้งการอัปเดต Store และ ฉลาด
(หรือวิธีแพ็คเกจอื่นๆ) อัพเดตเคอร์เนล WSL2 เนื่องจากเคอร์เนลเป็นส่วนหนึ่งของ WSL2 เอง และใช้ร่วมกันระหว่างการกระจายที่ติดตั้งทั้งหมด จึงมีการจัดการที่แตกต่างกัน ใช้:
wsl -- อัพเดท
... เพื่อตรวจสอบและดาวน์โหลดการอัปเดตเคอร์เนล WSL2
นั่นถือว่าคุณกำลังใช้เคอร์เนลเริ่มต้น คุณมีตัวเลือกในการดาวน์โหลดหรือสร้างเคอร์เนลของคุณเองจาก แหล่งที่มาของเคอร์เนล WSL2. เป็นประสบการณ์ของฉันที่อาจใช้เวลาสองสามวันหรือหลายสัปดาห์เพื่อให้การอัปเดตเคอร์เนลพร้อมใช้งาน wsl -- อัพเดท
ดังนั้นหากคุณต้องการคว้าสิ่งใหม่ล่าสุดและยิ่งใหญ่ที่สุด คุณก็ทำได้ จากนั้นกำหนดค่า WSL2 เพื่อใช้เคอร์เนลนั้นผ่าน .wslconfig
.
อีกหนึ่งสิ่ง
จากที่กล่าวมาทั้งหมด แอป "Ubuntu" (เวอร์ชันที่ไม่รองรับ) ยังคงมีข้อดีอย่างหนึ่ง และนั่นคือคุณไม่ต้องกังวลเกี่ยวกับการเปลี่ยนชื่อ (เหมือนในคำถามอื่นๆ) เมื่อคุณอัปเกรดเป็นรุ่นที่ใหม่กว่าในที่สุด รุ่น "Ubuntu 20.04" จะมีชื่ออินสแตนซ์เสมอ อูบุนตู-20.04
แม้ว่าและเมื่อคุณอัปเกรดด้วยตนเองในภายหลัง