Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Linux

จาก Snap สู่ Flatpak: ทำไมการเปลี่ยนให้การจัดการแอป Linux ดีกว่า

เผยแพร่เมื่อ 27 มีนาคม 2569 เวลา 10:00 น. EDT

Afam มีประสบการณ์ในการเผยแพร่เทคโนโลยีตั้งแต่ 2018 ทำงานให้ Make Tech Easier ตลอดปี เขาสร้างชื่อเสียงในการเผยแพร่คู่มือ รีวิว เคล็ดลับ และบทความอธิบายคุณภาพสูง ครอบคลุม Windows, Linux และ open source tools ผลงานของเขาถูกนำเสนอบนเว็บไซต์ชั้นนำ รวมถึง Technical Ustad, Windows Report, Guiding Tech, Alphr และ Next of Windows

เขาถือปริญญาตรี Computer Science และเป็นผู้สนับสนุนความเป็นส่วนตัวและความปลอดภัยข้อมูลอย่างแข็งขัน มีเคล็ดลับ วิดีโอ และ tutorials เรื่องนี้เผยแพร่บนช่อง Fuzo Tech YouTube

ตอนว่างเขาชอบใช้เวลากับครอบครัว ปั่นจักรยาน หรือดูแลสวน

Ubuntu เป็นหนึ่งในดิสโตร Linux แรกที่ผมลองและชอบ ดังนั้นผมจึงเลือก Snap "แพ็กเกจสากล native" ของมันโดยธรรมชาติ มันเพิ่งเกิดขึ้นเมื่อเร็วๆ นี้ เมื่อผมลอง Flatpak ผมจึงรู้ว่าบางปัญหาเล็กๆ ที่ผมคิดว่ามีปัญหาที่ระบบ ถูกกระตุ้นโดย sandboxing ของ Snap ตอนนี้ผมใช้ Flatpak พอสมควรจนรู้ว่ามันโดยทั่วไปเป็นตัวเลือกที่ดีกว่า

ความหงุดหงิด

Snap เริ่มขวางทางผม

Snap ทำงานในพื้นหลังได้ดี และโดยทั่วไปคุณคาดหวังว่าอัปเดตจะคิวได้อย่างเหมาะสม และแอปที่คุณต้องการจะมีใน store ปัญหากับแอปเฉพาะอย่างเช่น Spotify คือการผสมผสานระหว่าง always-on daemon ของ snapd และ queued refreshes ซึ่งสามารถทำให้แอปเปิดเข้าสู่สถานะ "pending refresh" สิ่งนี้มักสะท้อนเป็นความล่าช้าสั้นๆ

ปัญหาเฉพาะนี้ดูเหมือนจะไม่มีในแอปอื่นที่ส่งเป็น Snap เช่น VS Code อย่างไรก็ตาม มีปัญหาอื่นๆ ด้วย Firefox ตัวอย่างเช่น การเล่นวิดีโอบางครั้ง lag และ scrolling ไม่ smooth การจำกัดของ Snap บล็อกการเข้าถึง GPU อย่างเหมาะสมโดย default ซึ่งอาจทำให้วิดีโอ lag และ scrolling ไม่ smooth

แต่ด้วยเหตุผลบางอย่าง ผมรับปัญหา latency ของ Spotify อย่างเป็นส่วนตัว มันคือการผสมผสานที่แย่ของ background overhead ของ snapd, strict confinement และแอปที่ต้องการสายส่งตรงไปยังระบบเสียงของคุณ เนื่องจาก Snap Store เป็นของ Canonical อย่างเดียว จึงไม่มีความยืดหยุ่นในการ sourcing ไม่เหมือน native packages ที่ distro repositories เป็นเพียงจุดเริ่มต้น

Flatpak รู้สึกเบาทันที

สิ่งที่ขวางทางน้อยลง

Flatpak ไม่ได้ส่ง speed boost ทันทีหรือฟีเจอร์派手 แตมันจัดการ basic things ได้โดยไม่ขวางทาง ผมควบคุมเมื่อไรที่อัปเดตถูกนำไปใช้ หมายความว่าตอนที่ผมเปิดแอป ผมไม่ต้องรอ refresh นำไปใช้ และในพื้นหลัง ไม่มี always-on daemon รบกวน

มันเสนอตัวเลือก curated, trustworthy จำนวนมาก ที่รวมแอปส่วนใหญ่ที่ผมต้องการ ขอบคุณ Flatseal ผมสามารถปรับสิทธิ์ของแอปแต่ละตัวได้โดยไม่ต้องแตะ system-wide settings

เมื่อเปรียบเทียบติดกัน Flatpak มีขอบได้เปรียบเล็กน้อยด้วยการปรับปรุงเล็กๆ ที่นับจริงเมื่อมันสำคัญ

FeatureSnapFlatpak
Store opennessSingle, Canonical-controlledFlathub + additional remotes
Background processsnapd always runningNo persistent daemon
Update controlAutomatic, queuedUser-controlled
Theme integrationPartial, often brokenImproved, but still incomplete
CLI experiencesnap run appflatpak run org.app.Name (verbose)

Snap's mounting clutter

คุณควรเตรียมพร้อมสำหรับผลลัพธ์ถ้าคุณรัน lsblk บนระบบที่มี Snap ติดตั้ง ถ้าคุณมี 10 แอป คุณจะได้ loop entries อย่างน้อย 10 ตัว นี่เป็นเพราะแต่ละ Snap mount compressed SquashFS image เป็น loop device ทำให้เกิด loop entries หลายตัวที่แออัด block device list และ GNOME Disks utility กลายเป็น cluttered

นี่เป็นส่วนหนึ่งของ Snap design โดยเจตนา ช่วย atomic updates และ strong isolation แตทำด้วยค่าใช้จ่ายของระบบที่แออัดและอ่านไม่ง่ายในนาทีเดียว

Flatpak ใช้ OSTree สำหรับ repo distribution และ shared runtimes mount ผ่าน fuse-overlayfs แทน loop devices ในกรณีนี้ หลายแอปใช้ deduplicated library pool เดียวกัน เนื่องจาก private environments ตัวต่อตัวไม่ได้ถูก mount วิธีนี้ผลิต filesystem ที่สะอาดและง่ายต่อการ audit มากขึ้น

Flatpak มีปัญหาของตัวเอง

แตผมชอบปัญหาเหล่านี้มากกว่า Snap

Sandboxing บน Flatpak อาจทำให้แอปบางตัวที่ต้องการ deep system access ล้มเหลว ผมสังเกตเห็นกับ VS Codium และ GTK themes ไม่มี implementation ที่ seamless ที่สุด

แตความแตกต่างใหญ่คือ ปัญหาเหล่านี้ใน Flatpak มักจะ visible และแก้ได้ เมื่อปัญหาปรากฏ คุณสามารถระบุสาเหตุและแก้ไข — บ่อยครั้งด้วยการปรับ permissions กับ Flatseal นี่คือความแตกต่างกับ Snap ที่ delays รู้สึก invisible คุณมีแนวโน้มที่จะกล่าวโทษระบบมากกว่า Snap ระบบดูเหมือนทำงานต่อต้านคุณ ดังนั้นสิ่งที่ Flatpak ทำให้ต่างออกไปคือการให้คุณ control (ควบคุม)

การสลับก็ seamless เช่นกัน Flatpak ติดตั้งตรงไปตรงมา และการ enable Flathub ง่ายมาก ผมย้ายแอปอย่าง Spotify ได้ง่าย อย่างไรก็ตาม ช่วงท้าทายหนึ่งคือกับแพ็กเกจบางอย่างอย่าง ubuntu-advantage-tools ที่ reinstall snapd เงียบๆ ถ้าคุณไม่รู้ว่ามีความเป็นไปได้นี้ คุณอาจคิดว่าคุณออกจาก Snap แล้ว จนแม้มันยังคงอยู่

ไม่ใช่ verdict — แตเป็น decision framework

สำคัญที่จะบอกว่า ทั้งหมดที่ผมทำกับ Snap คือ demote มัน มันยังคงเป็นส่วนหนึ่งของระบบของผม สำหรับแอป desktop ประจำวันหลายตัว ผมชอบ Flatpak อย่างไรก็ตาม ผมเก็บ system-level tools บางอย่างไว้เป็น Snap พวกมันแค่เหมาะสมอยู่ที่นั่น ตัวไหนไม่ได้ superior เสมอไป เครื่องมือที่ดีที่สุดคือตัวที่เข้ากับงานเฉพาะนั้น

นี่คือวิธีที่ผมตัดสินใจว่าอะไรทำงาน:

ScenarioBest choice
Daily desktop apps (Spotify, GIMP, Inkscape)Flatpak
Ubuntu system tools (core utilities, LXD)Snap
Firefox / Thunderbird on UbuntuEither — both are upstream-maintained
Apps needing strict permission tuningFlatpak + Flatseal
Server daemons or background servicesSnap
Maximum compatibility across distrosFlatpak

สิ่งที่ผมรู้คือ ยิ่งผมเข้าใจ Linux package managers มากขึ้น ยิ่งผมย้ายแอปไป Flatpak