हमने समझाया कि क्या Flatpak, Snap, औरAppImage लेख में हैं वे ढेर कैसे करते हैं? 2 साल पहले प्रकाशित हुआ था और उस समय से तकनीकों में बहुत सुधार हुआ है, मैं एक सॉफ्टवेयर डेवलपर के दृष्टिकोण से उनका मूल्यांकन कर रहा हूं।
सैंडबॉक्सिंग / एकांतवास
आप सैंडबॉक्सिंग के बिना AppImage चला सकते हैं और साथ ही इसे विभिन्न सैंडबॉक्स के साथ उपयोग कर सकते हैं उदा। AppArmor और फायरजेल.
Snap सैंडबॉक्सिंग के बिना चल सकता है लेकिन आप इसे विभिन्न सैंडबॉक्स के साथ उपयोग नहीं कर सकते क्योंकि यह के साथ कसकर जुड़ा हुआ है AppArmor.
Flatpak न तो सैंडबॉक्सिंग के बिना चल सकता है और न ही इसे Bubblewrap के अलावा अन्य सैंडबॉक्स के साथ इस्तेमाल किया जा सकता है .
इंस्टॉलेशन / निष्पादन
AppImage रूट एक्सेस के बिना निष्पादन योग्य सेट करने के बाद, इसे डीकंप्रेस किए बिना, और एक ऑफ़लाइन सिस्टम पर चला सकते हैं।
Snap को snapd द्वारा इंस्टॉल करने की आवश्यकता है, चलाया नहीं जा सकता स्थापित होने के बाद तक बिना रूट एक्सेस के और न ही इसकी डाउनलोड करने योग्य फ़ाइल को exe
और dmg के बगल में रखा जा सकता हैजिसे उपयोगकर्ता ऑफ़लाइन सिस्टम पर इंस्टॉल कर सकते हैं, लेकिन यह एक असम्पीडित स्रोत से चल सकता है।
Flatpak को Flatpak क्लाइंट-साइड टूल द्वारा इंस्टॉल करने की आवश्यकता है, इंस्टॉलेशन के बाद तक रूट एक्सेस के बिना नहीं चल सकता, किसी से नहीं चल सकता असम्पीडित स्रोत। साथ ही, flatpakref
फ़ाइलों के लिए इंटरनेट और फ़ाइलों की आवश्यकता होती हैFlatpak बंडलों को स्थापित करने के लिए रन-टाइम की आवश्यकता होती है।
AppImage एप्लिकेशन को गैर-मानक स्थानों जैसे CD-ROM से संग्रहीत और चला सकते हैं और नेटवर्क शेयर। Flatpak कुछ कॉन्फ़िगरेशन के बाद वही कर सकता है, जबकि Snap वर्तमान में नहीं कर सकता।
इस अनुभाग में, AppImage केक लेता है क्योंकि इसके अनुप्रयोग अधिक लचीले होते हैं।
आवेदन वितरण और अपडेट
Flatpak और Snap के लिए केंद्रीय भंडार FlatHub है, और स्नैप स्टोर क्रमशः। उपयोगकर्ता AppImageHub से AppImages डाउनलोड कर सकते हैं जो AppImage बंडलों के रूप में उपलब्ध सॉफ़्टवेयर के लिए एक कैटलॉगिंग प्लेटफ़ॉर्म है।
विपरीत AppImage और FlatPak, हालांकि,Snap Store एकमात्र प्रमुख ऐप स्टोर है जिसमें प्रति डिवाइस एक रेपो है। यह अच्छा है या बुरा यह आपको तय करना है।
सभी 3 तरीकों का इस्तेमाल करके पैक किए गए ऐप्लिकेशन के कई वर्शन समानांतर में चल सकते हैं और इन्हें आसानी से दूसरी मशीन में कॉपी किया जा सकता है. हालांकि, उनके अपने अनूठे कार्यान्वयन हैं।
सभी 3 बाइनरी डेल्टा अपडेट का समर्थन करते हैं लेकिन केवल AppImage ऐप्स Snap के रूप में स्वतः अपडेट हो सकते हैं ऐप्स को snapd इंस्टॉल करने की आवश्यकता है और Flatpak ऐप्स कोकी आवश्यकता है Flatpak इंस्टॉल किया जाना है.
सारांश
AppImages और Snap हर समय कंप्रेस रहता है ( Flatpak केवल सर्वर-साइड पर संपीड़ित होता है) और आमतौर पर Flatpak ऐप्स से आकार में छोटे होते हैं . AppImage भी किसी भी डिस्ट्रो मेकर से स्वतंत्र है और इसका लक्ष्य Linux प्लेटफॉर्म इकोसिस्टम को एकीकृत करना है।
Snap का स्वामित्व Canonical के पास है और इसका आधार स्नैप रखता है अंतर्निहित डिस्ट्रो पर, जबकि Flatpak एक Red Hat पहल है जो एक योक्टो डिस्ट्रो को ऊपर रखता है अंतर्निहित डिस्ट्रो।साथ ही, Snap के विपरीत, जहां डेवलपर को Canonical, भुगतान करने की आवश्यकता होती है AppImage और Flatpak उपयोग करने के लिए स्वतंत्र हैं।
जहां से मैं खड़ा हूं, AppImages उपयोग करने के लिए आदर्श पैकेजिंग विधि है क्योंकि यह डेवलपर्स और अंतिम उपयोगकर्ताओं दोनों के लिए सबसे सुविधाजनक है। हालांकि, उनके लिए सह-अस्तित्व में रहना संभव है, खासकर जब ऐसे मामले हों जब डेवलपर्स एक दूसरे का उपयोग करना पसंद करेंगे। हमें बताएं कि आप नीचे टिप्पणी अनुभाग में क्या सोचते हैं।
इस लेख के लिए मेरा शोध समान परियोजनाओं और यहां और यहां रेडिट थ्रेड से बहुत प्रभावित था। अधिक जानकारी के लिए बेझिझक उन्हें देखें।