เราอธิบายว่า Flatpak, Snap และAppImage อยู่ในบทความ How Do They Stack? เผยแพร่เมื่อ 2 ปีที่แล้ว และในขณะที่เทคโนโลยีต่างๆ ได้รับการปรับปรุงให้ดีขึ้นมากตั้งแต่นั้นมา ฉันกำลังประเมินเทคโนโลยีเหล่านี้จากมุมมองของนักพัฒนาซอฟต์แวร์
แซนด์บ็อกซ์ / การกักขัง
คุณสามารถรัน AppArmor และ Firejail.
Snap สามารถทำงานได้โดยไม่ต้องใช้แซนด์บ็อกซ์ แต่คุณไม่สามารถใช้กับแซนด์บ็อกซ์อื่นได้เนื่องจากเชื่อมต่อกับ AppArmor.
Flatpak ไม่สามารถทำงานได้หากไม่มีแซนด์บ็อกซ์และไม่สามารถใช้กับแซนด์บ็อกซ์อื่นนอกเหนือจาก Bubblewrap .
การติดตั้ง / การดำเนินการ
One can run an AppImage หลังจากตั้งค่าปฏิบัติการโดยไม่ต้องเข้าถึงรูท โดยไม่ต้องขยายขนาด และบนระบบออฟไลน์
Snap ต้องติดตั้งโดย snapd ไม่สามารถเรียกใช้ได้ ไม่มีการเข้าถึงรูทจนกว่าจะติดตั้งเสร็จ และไม่สามารถวางไฟล์ที่ดาวน์โหลดได้ถัดจาก exe
และ dmgซึ่งผู้ใช้สามารถติดตั้งบนระบบออฟไลน์ แต่สามารถเรียกใช้จากแหล่งที่ไม่มีการบีบอัด
Flatpak จำเป็นต้องติดตั้งโดย Flatpak เครื่องมือฝั่งไคลเอนต์ ไม่สามารถทำงานได้หากไม่มีการเข้าถึงรูทจนกว่าจะติดตั้งเสร็จ ไม่สามารถเรียกใช้จาก แหล่งที่ไม่บีบอัด นอกจากนี้ flatpakref
ไฟล์ต้องการอินเทอร์เน็ตและ flatpak ชุดบันเดิลต้องติดตั้งรันไทม์
AppImage สามารถจัดเก็บและเรียกใช้แอปพลิเคชันจากตำแหน่งที่ไม่ได้มาตรฐาน เช่น CD-ROM และเครือข่ายแชร์ Flatpak สามารถทำได้เช่นเดียวกันหลังจากการกำหนดค่าบางอย่าง ในขณะที่ Snap ปัจจุบันทำไม่ได้
ในส่วนนี้ AppImage ได้เปรียบเพราะการใช้งานมีความยืดหยุ่นมากกว่า
การกระจายแอปพลิเคชันและการอัปเดต
พื้นที่เก็บข้อมูลส่วนกลางสำหรับ Flatpak และ Snap คือ FlatHub และ Snap Store ตามลำดับ ผู้ใช้สามารถดาวน์โหลด AppImages ได้จาก AppImageHub ซึ่งเป็นแพลตฟอร์มแคตตาล็อกสำหรับซอฟต์แวร์ที่มีอยู่ใน AppImage Bundles
Unlike AppImage และ FlatPak อย่างไรก็ตามSnap Store เป็นร้านแอปเด่นแห่งเดียวที่มีหนึ่ง repo ต่ออุปกรณ์ ไม่ว่าสิ่งนั้นจะดีหรือไม่ดีอยู่ที่คุณตัดสินใจ
Apps ที่บรรจุโดยใช้ทั้ง 3 วิธีสามารถมีหลายเวอร์ชันที่ทำงานพร้อมกันและสามารถคัดลอกไปยังเครื่องอื่นได้อย่างง่ายดาย อย่างไรก็ตาม พวกเขามีการใช้งานที่ไม่เหมือนใคร
All 3 รองรับการอัปเดตไบนารีเดลต้า แต่เฉพาะแอป AppImage สามารถอัปเดตด้วยตนเองเป็น Snap แอปต้องการ snapd เพื่อติดตั้ง และ Flatpak แอปต้องการFlatpak เพื่อติดตั้ง
สรุป
AppImages และ Snap ยังคงบีบอัดอยู่ตลอดเวลา ( Flatpakถูกบีบอัดทางฝั่งเซิร์ฟเวอร์เท่านั้น) และโดยทั่วไปแล้วจะมีขนาดเล็กกว่า Flatpak แอป . AppImage ยังเป็นอิสระจากผู้สร้าง distro และมีเป้าหมายที่จะรวมระบบนิเวศของแพลตฟอร์ม Linux เข้าด้วยกัน
Snap เป็นของ Canonical และวางสแน็ปพื้นฐาน เหนือ distro พื้นฐานในขณะที่ Flatpak เป็น Red Hat ความคิดริเริ่มที่วาง Yocto distro distro พื้นฐานนอกจากนี้ ไม่เหมือนกับ Snap ที่นักพัฒนาต้องจ่ายให้กับ Canonical, AppImage และ Flatpak ใช้งานได้ฟรี
จากจุดที่ผมยืนอยู่ AppImages เป็นวิธีการบรรจุที่เหมาะที่จะใช้เพราะเป็นวิธีที่สะดวกที่สุดสำหรับทั้งนักพัฒนาและผู้ใช้ปลายทาง อย่างไรก็ตาม เป็นไปได้ที่พวกเขาจะอยู่ร่วมกันโดยเฉพาะอย่างยิ่งเมื่อมีกรณีที่ผู้พัฒนาต้องการใช้อย่างใดอย่างหนึ่ง บอกเราว่าคุณคิดอย่างไรในส่วนความคิดเห็นด้านล่าง
การวิจัยของฉันสำหรับบทความนี้ได้รับอิทธิพลอย่างมากจากโครงการที่คล้ายกันและเธรด Reddit ที่นี่และที่นี่ อย่าลังเลที่จะตรวจสอบข้อมูลเชิงลึกเพิ่มเติม