อะไรคือความแตกต่างระหว่าง snaps, appimage, flatpak และอื่น ๆ ?


105

ฉันได้รับคำถามนี้เมื่อเร็ว ๆ นี้จากนักเรียนและแม้ว่าฉันจะมีข้อมูลจำนวนมากที่จะนำเสนอ แต่ฉันไม่พบแหล่งที่มาที่ฉันสามารถชี้ให้ผู้คนไปยังที่ที่พวกเขาสามารถอ่านคำตอบการปรับปรุง (ฉันพบข้อมูลผิด ๆ ) ดังนั้นคำถามบางข้อที่ฉันมีสำหรับรูปแบบแพ็คเกจเช่น snap, appimage, flatpak และอื่น ๆ ในวิวัฒนาการของระบบบรรจุภัณฑ์สากลนี้คือ:

  • ใครเป็นผู้สร้างรูปแบบแพ็คเกจ
  • มันมีคุณสมบัติอะไรบ้าง?
  • คุณลักษณะใดที่เป็นเอกลักษณ์ของมัน (ที่คนอื่นยังไม่ได้)
  • ใครเป็นผู้สนับสนุน
  • ดิสทริบิวชันใดที่ใช้
  • แพ็คเกจนี้มีจุดสนใจอะไรบ้าง? (สำหรับเดสก์ท็อปเมฆมือถือ ฯลฯ )
  • มีการพัฒนาอะไรเพิ่มเติม

คำตอบ:


68

นี่เป็นการเปรียบเทียบแบบตารางแบบยาวของคุณสมบัติ AppImage vs. Snap vs. Flatpak มันมาจากAppImage Wiki บน GitHub :

AppImage vs. Snap vs. Flatpack Comparison


43
ฉันคิดว่ามันคุ้มค่าที่จะชี้ให้เห็นว่าแผนภูมินี้สร้างจากมุมมองของ AppImage ความหมายชุดคุณสมบัติเริ่มต้นคือชุดคุณลักษณะของ AppImage และส่วนอื่น ๆ จะถูกนำไปเปรียบเทียบกับคุณสมบัติ ที่ให้ความเอนเอียงกับ AppImage มันค่อนข้างล้าสมัย ตัวอย่างเช่น Snap ที่เพิ่มธีมสนับสนุนการล่มสลายนี้
ด่าน

1
@Dan: หากคุณมีความรู้เกี่ยวกับสแน็ปอินเพิ่มการสนับสนุนพวกเขา - ทำไมคุณไม่เพียงแค่แก้ไขในแผนภูมิ? นอกจากนี้หากคุณรู้เกี่ยวกับคุณสมบัติอื่น ๆ ที่อยู่ใน Snap และ / หรือ Flatpak: รู้สึกว่าได้รับเชิญให้แก้ไขแผนภูมิด้วยรายการที่เกี่ยวข้องใน AppImage wiki ...
Kurt Pfeifle

11
ฉันไม่แน่ใจว่าคุณจะพูดได้อย่างไรว่า @Kurt ลองดูที่ส่วน "วัตถุประสงค์" เป็นตัวอย่าง มันแสดงให้เห็นถึงวัตถุประสงค์ของ AppImage โดยเฉพาะราวกับว่าไม่มีโครงการอื่นใดที่มีวัตถุประสงค์ใด ๆ เช่นเดียวกับวัตถุประสงค์ที่ AppImage มีความสำคัญ
ด่าน

5
ฉันเข้าใจคุณแล้ว - ฉันแก้ไขวิกิได้ อย่างไรก็ตามคำตอบของคุณเป็นภาพขนาดยักษ์ที่น่าจะเป็นไปได้อย่างต่อเนื่องแม้ในขณะที่วิกิเปลี่ยนไป ฉันคิดว่าอคตินั้นคุ้มค่าที่จะพูดถึงในอนาคตสำหรับคำตอบของคุณในการถามผู้อ่าน Ubuntu
Dan

2
@ ด่าน: ฉันแก้ไขคำตอบเมื่อวันที่ 4 กรกฎาคมเพื่อแทรกภาพหน้าจอรุ่นปรับปรุงจากเว็บไซต์ (เพื่อรวมการแก้ไขบางอย่างที่เกิดขึ้นกับวิกิ) ปัญหาของคุณในการแก้ไข Wiki เดิมสร้างภาพหน้าจอใหม่แล้วแนะนำการแก้ไขคำตอบนี้ด้วยภาพหน้าจอใหม่
Kurt Pfeifle

51

Snapsถูกสร้างโดย Canonical สำหรับ Ubuntu ข้อดีหลักของ snaps คือ:

  • ความเป็นอิสระในการพึ่งพา - ไลบรารีและการพึ่งพาทั้งหมดจะรวมอยู่ในแพ็คเกจ นอกจากนี้ยังอนุญาตให้มีโปรแกรมรุ่นเดียวกันมากขึ้น
  • Sandboxing - snaps กำลังใช้ AppArmor ที่แก้ไขแล้วเพื่อ sandbox แอปพลิเคชัน
  • การปรับปรุงเดลต้า - snaps ควรอนุญาตการปรับปรุงเดลต้า

ข้อเสียเปรียบหลักของ snaps คือซอฟต์แวร์สามารถใช้ไลบรารีที่รวมอยู่ในแพ็คเกจเท่านั้น นี่เป็นความเสี่ยงด้านความปลอดภัยที่อาจเกิดขึ้นเนื่องจากผู้เขียนแพ็คเกจจำเป็นต้องทำการอัพเดทและอัพเดทไลบรารีทั้งหมด

Snaps สามารถทำงานได้ใน Ubuntu, Arch Linux, Fedora, Linux Mint, CentOS และ Gentoo พวกเขายังใช้ใน Ubuntu Touch ออกแบบมาสำหรับเดสก์ท็อปเซิร์ฟเวอร์โทรศัพท์ IoT และเราเตอร์

Flatpakมีข้อดีเหมือนกับ snaps อย่างไรก็ตามมันใช้ Namespaces แทน AppArmour สำหรับการทดลองใช้ Sandbox ข้อแตกต่างที่สำคัญคือ Flatpaks สามารถใช้ไลบรารีที่รวมอยู่ในแพ็คเกจและไลบรารีที่ใช้ร่วมกันจาก Flatpak อื่นได้

ผู้พัฒนา Flatpak เป็นพนักงานของ Red Hat Alexander Larsson ขณะนี้ซอฟต์แวร์ Flatpak ให้บริการใน Arch Linux, Debian, Fedora, Mageia, Solus และ Ubuntu มันเน้นที่เดสก์ท็อปเท่านั้น

ภาพต่าง ๆ ได้รับการพัฒนาโดย Simon Peter เช่นเดียวกับ snaps หรือ Flatpak แพ็คเกจรวมไลบรารีทั้งหมดที่จำเป็นสำหรับการเรียกใช้โปรแกรม โปรแกรม AppImage ไม่ได้ถูกทำแซนด์บ็อกซ์และไม่จำเป็นต้องมีสิทธิ์การใช้งานรูท ตามเว็บไซต์ของโครงการ AppImages ควรทำงานบน Arch Linux, Centos, Debian, Fedora, OpenSUSE, Red Hat Linux และ Ubuntu


3
Solus ได้ประกาศให้การสนับสนุน flatpakในเดือนมกราคม 2560
Anthon

8
พวกเขาทุกคนควรสร้างขึ้นมาจากความรู้สึก แทนการคิดค้นอุดมการณ์เดียวกันและแนะนำการกระจายตัวและการสับสน นอกจากนี้โปรดทราบว่าเนื่องจากแพ็คเกจพกพาเหล่านี้มีไลบรารีทั้งหมดจึงมีขนาดที่ใหญ่กว่าเมื่อเทียบกับแอปที่ใช้ไลบรารีที่ใช้ร่วมกันที่ติดตั้งผ่าน apt หรือ. deb หากคุณต้องรู้ว่าเป็นที่นิยมมากขึ้น flatpak กำลังเต้นสแนป
answerSeeker

ด้วยการโจมตีของ Spectre ในตอนนี้ฉันคิดว่าจะมีความสนใจในไลบรารีแบบแบ่งใช้น้อยลงด้วยเหตุผลด้านความปลอดภัย :-)
Chris

4
@answerSeeker: ความคิดเห็นของคุณเกี่ยวกับแพคเกจแบบพกพาเป็น"มากหนักในขนาดที่เมื่อเทียบกับแอปใช้ห้องสมุดสาธารณะติดตั้งผ่านฉลาดหรือ .deb เป็น"ไม่จำเป็นต้องได้รับการสนับสนุนโดยข้อเท็จจริงชีวิตจริง AppImages และ Snaps ถูกบีบอัดลงในรูปภาพ SquashFS (ไม่เป็นจริงสำหรับ Flatpak) พวกเขาจะไม่แยกลงบนดิสก์แม้ในช่วงเวลาทำงาน AppImages เมื่อใช้งานให้ติดตั้งตัวเองลงบนจุดเมานท์ที่สร้างขึ้นชั่วคราว/tmp/.mount_<random-chars>และวิ่งจากที่นั่น - ยังคงถูกบีบอัด! ดูตัวเลขสำหรับตัวอย่าง LibreOffice ในภาพหน้าจอของคำตอบของฉันด้านล่าง ...
Kurt Pfeifle

1
@PabloBianchi: AppImages รุ่นใหม่ (ของ'ประเภท 2' ที่หลากหลายขึ้น) สามารถมีกลไกการอัพเดทในตัว การดาวน์โหลดนี้เป็นเดลต้าไบนารีที่แตกต่างจากตำแหน่ง AppImage ดั้งเดิมประหยัดขนาดและเวลาในการดาวน์โหลดเมื่อมีเวอร์ชั่นใหม่และหลังจากที่ผู้ใช้ระบุว่าเขาต้องการ เครื่องมือappimageupdatetool(CLI) และAppImageUpdate-Qt(GUI)ช่วยในเรื่องนี้
Kurt Pfeifle
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.