Score:6

วิธีอัปเกรดแพ็คเกจ Ubuntu ใน WSL ควบคู่ไปกับการอัปเดตอัตโนมัติของ Microsoft Store

ธง cn

ฉันเริ่มใช้ WSL2 และติดตั้ง Ubuntu โดยไม่มีหมายเลขเวอร์ชันเฉพาะ ความเข้าใจของฉันคือมันจะอัปเกรดเป็นรุ่น LTS ที่สำคัญรุ่นถัดไปโดยอัตโนมัติ (ตอนนี้เป็น 20.04 และฉันคิดว่าจะเป็น 22.04 ในปีหน้า)

แล้วแพ็คเกจข้างในล่ะ? ฉันสามารถ การปรับปรุงที่เหมาะสม และ เหมาะอัพเกรด ทั้งหมด แต่ Microsoft Store ยังอัปเดตอัตโนมัติด้วย Ubuntu รุ่นใหม่ ซึ่งฉันเชื่อว่าจะเขียนทับการอัปเดตด้วยตนเองบางส่วนของฉัน ฉันควรปล่อยไว้และอัปเกรดแพ็คเกจที่ฉันติดตั้งด้วยตัวเองเท่านั้นหรือไม่ อะไรคือแนวทางปฏิบัติที่ดีที่สุด?

Score:7
ธง vn

หมายเหตุ: นำคำตอบบางส่วนของฉันไปใช้ซ้ำ คำถามนี้. มีความแตกต่างเพียงพอในคำถามที่ต้องการการเปลี่ยนแปลงเล็กน้อย แต่แนวคิดหลักบางส่วนก็เหมือนกัน

ส่วน "อัปเกรดอัตโนมัติ" ของแอป 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 ค่อนข้างไร้ประโยชน์สำหรับผู้ใช้ส่วนใหญ่ เว้นแต่คุณจะ:

  1. ยกเลิกการลงทะเบียนอินสแตนซ์ (ซึ่งจะลบการกำหนดค่าทั้งหมด) และกำหนดค่าใหม่โดยเรียกใช้อีกครั้ง ubuntu.exe สั่งการ. เมื่อผ่านการกำหนดค่าเริ่มต้นนั้น rootfs จะถูกคลายแพ็ก ดังนั้นคุณจะได้รับ "ล่าสุดและดีที่สุด" จาก Store ณ จุดนั้น อย่างไรก็ตาม โปรดทราบว่าการเปิดตัวของ Store นั้นยังค่อนข้างไม่บ่อยนักเมื่อเทียบกับการอัปเดตแพ็คเกจใน repos อย่างเป็นทางการ แม้จะติดตั้งทันทีจาก Store คุณก็ยังได้รับการอัปเดตอยู่เสมอ ฉลาด.

  2. ต้องการใช้สิ่งนั้น 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แม้ว่าและเมื่อคุณอัปเกรดด้วยตนเองในภายหลัง

cn flag
ขอบคุณสำหรับคำอธิบายโดยละเอียด! มันทำให้ฉันประหลาดใจที่การอัปเดตอัตโนมัติของ Store ไม่อัปเดตเคอร์เนลด้วยซ้ำ... น่ารู้
NotTheDr01ds avatar
vn flag
@leoce ถูกต้อง! และเคอร์เนลก็เป็นเรื่องราวที่แตกต่างไปจากเดิมอย่างสิ้นเชิงเช่นกัน อัปเดตคำตอบให้ครอบคลุม

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา