Debian คงที่ประมาณ 2 ปี: เวอร์ชันแพ็กเกจ/ฟีเจอร์ไม่เปลี่ยน แค่ backport security fixes นานๆครั้งมี exception (เช่น driver รองรับฮาร์ดแวร์ใหม่) แต่หายาก ความคงทำนี้ทำให้ "Rock solid" — น้อยบั๊ก, สิ่งไม่คาดคิด, อัปเดตไม่แตก
แต่ทุก ~2 ปี จะมี major release ใหม่ พร้อมฟีเจอร์/การปรับปรุงใหญ่ๆ กระบวนการอัปเกรดก็ "rock solid" เช่นกัน: บนระบบสะอาด อัปเกรด major version รู้สึกเหมือนอัปเดตแพ็กเกจเล็กน้อย
ก่อนอัปเกรด: ทำความสะอาด sources.list
หลายคนเจอ conflict เพราะเพิ่ม repo ภายนอก/ติดตั้ง .deb นอก repo → แพ็กเกจเมเนเจอร์ "ป่วยในความเงียบ" ลบ repo ภายนอกทั้งหมดออกจาก sources.list ก่อนอัปเกรด
sudo nano /etc/apt/sources.list
ควรเหลือแค่ 3 บรรทัด (template):
deb https://deb.debian.org/debianmain deb https://deb.debian.org/debian -updates main deb https://deb.debian.org/debian-security /updates main
สำคัญ: รักษา codename ปัจจุบัน (เช่น buster, bullseye, bookworm) หาก sources.list เดิมมี main contrib non-free ให้เพิ่ม contrib non-free ท้ายทุกบรรทัด
เซฟ (Ctrl+X, Y, Enter) → sudo apt update → sudo apt upgrade → sudo apt autoremove
เตรียม sources.list สำหรับอัปเกรด
อัปเกรดทีละ major version เท่านั้น (7→8, 8→9, 9→10... ไม่ข้าม)
แก้ sources.list อีกครั้ง: เปลี่ยน codename เก่า → codename ใหม่ (ดูที่หน้า releases ของ Debian)
ตัวอย่าง 9 (stretch) → 10 (buster):
deb https://deb.debian.org/debian buster main contrib non-free deb https://deb.debian.org/debian buster-updates main contrib non-free deb https://deb.debian.org/debian-security buster/updates main contrib non-free
เซฟ → sudo apt update
อัปเกรด Debian
- Logout จาก GUI (อัปเกรดจะ restart graphical stack ทำให้เทอร์มินัลหาย)
- เข้า text console: Alt+Ctrl+F2 (หรือ F3) ล็อกอิน
- Safe upgrade (ไม่ลบแพ็กเกจ):
sudo apt upgrade
ดูว่ามี conflict บังคับลบแพ็กเกจสำคัญไหม (บนระบบสะอาดไม่ควรเกิด) - จะถามเก็บ config เดิมหรือใช้ config ใหม่ของ maintainer → แนะนำเลือกใหม่ (Y) เว้นแต่คุณแก้ config เอง
- Full upgrade (ลบแพ็กเกจเก่าที่ชนกัน):
sudo apt full-upgrade
- ทำความสะอาด:
sudo apt autoremove - รีบูต:
sudo systemctl reboot
สรุป
ปกติทำงานได้สมูธ หากเคยเพิ่ม repo ภายนอก/ติดตั้ง .deb เอง อาจเจอ conflict → ต้องแก้เอง (ลบแพ็กเกจชนกันก่อน) อ่านรายละเอียดเพิ่ม: ค้น "Debian