三款新星Linux解決方案:Snappy、Flatpak和AppImage
譯文【51CTO.com快譯】2018年,與發行版無關的軟件包安裝解決方案大有幫助。這個領域的三顆新星是Snappy、Flatpak和AppImage。
不久前,二進制軟件包被認為是救星,不必為Linux系統編譯軟件包。
2018年,借助與發行版無關的軟件包解決方案,我們會闊步前進。本文將介紹這個領域的三顆新星:Snappy、Flatpak和AppImage。
AppImage是一種很管用的軟件磁盤映像
我是AppImage的忠實粉絲,因為只要使希望運行的某個程序成為可執行文件,然后雙擊它即可。AppImages就這么簡單。據官網介紹,其想法是你可以直接從相應軟件的開發者那里獲得軟件。使用AppImage格式,安裝應用程序可能讓人覺得類似如同使用Windows一樣。
運行AppImage的優點是不需要sudo、root甚至不需要為系統依賴項所操心。你基本上只需掛載磁盤映像,類似在OS X中掛載磁盤映像。
也許運行AppImages的***優點是,你運行的應用程序只需刪除一個文件即可將其刪除。這個單一的文件/磁盤映像方法既好又壞,取決于你怎么看待它。而且,AppImages易于分發、運行簡單。
AppImages的缺點是,即使你直接從開發者的網站獲得軟件,仍然不知道應用程序是否已被篡改。用過Transmission這款應用程序的OS X用戶對信任軟件的這個問題深有體會。這款應用程序讓勒索軟件可以感染在Mac上運行該應用程序的那些人。
盡管很喜歡AppImages,但我對AppImages絕對值得信賴的黑體印刷聲明持有異議。實際上,它們就是磁盤映像,我們需要信任每一個AppImage的分銷商。幸好,如果有人選擇在沙箱中運行AppImage,萬一下載的AppImage在源網站上被人利用,這可以防止形勢失控。
Flatpak提供隔離的運行時環境
Flatpak安裝的更新和應用程序由每個運行時環境來處理。其想法是,這提供了比運行典型的Linux軟件包更新更簡化的軟件包處理機制。Flatpak的亮點在于,它是針對桌面Linux發行版設計的。因此,使用Flatpaks分發的應用程序是針對桌面Linux用戶設計的。這也是AppImages的一個特點,但是Flatpaks的不同之處在于,它允許單個的應用程序更新。
Flatpaks與Ubuntu PPA相似的地方在于,它們使用單個的代碼倉庫用于應用程序安裝和更新。我先得承認,我其實不喜歡Flatpaks的這個特性,因為努力找到單個的代碼倉庫很費時。然而優點在于,由于與發行版無關,它確實為安裝/更新提供了一個更好的系統。
考慮的另一個方面是,安裝Flatpaks框架需要安裝所需的組件,才能使Flatpak成為可安裝的可用軟件。如果是Ubuntu之類的發行版,你得為Flatpak框架添加Ubuntu PPA。簡而言之,先要安裝PPA倉庫,才能安裝框架,之后才可安裝Flatpak倉庫。雖然這么做不難,但有點多余。
運行Flatpak安裝的應用程序的好處是,你可以在自己選擇的任何發行版上運行***的軟件。此外,為了減少尋找單個Flatpak倉庫帶來的麻煩,Flathub的應用程序部分簡化了軟件查找。
Flathub提供了在一個地方查找軟件的功能,即使過去Flatpaks不在一個單獨的地方。這實際上是個好主意,這樣一來,使用Flatpaks就***吸引力。可能最重要的是,Flathub的軟件類別含有可供選擇的大量軟件。
與AppImages一樣,Flatpaks是針對Linux桌面設計的。我們在介紹下文時,這是一個重要的考慮因素。
Snap Packages是壓縮文件系統
Snap軟件包是Canonical提出的一個打包概念,針對Linux和物聯網而設計。你進入到Snapcraft網站后,產生的***印象是,Snaps把開發人員放在最終用戶的前面。我倒不是說這是缺點,但是Snaps網站完全證實了我的說法。首頁上的兩個按鈕分別是“構建你的***個snap”和“開始上手Github”。
上面提到的兩個按鈕鏈接都假設你是開發人員,這與Flatpak的首頁大不相同。Flatpak首頁致力于將Flatpak軟件安裝到最終用戶的PC上。如果你查看頂部的導航欄并點擊商店,Snaps只提供最終用戶解決方案。一旦你點擊商店鏈接,會看到可以安裝到目標PC和服務器上的可用Snaps。
Snaps還與AppImage相似的地方在于,你是掛載軟件映像而不是安裝軟件。Snaps的另一個好處是,可以恢復到軟件的早期版本。此外,由于Snaps共享一個代碼倉庫,更新起來很容易。
一些人認為Snaps***的缺點是,它提供了Canonical控制的集中式打包格式。當然,Snaps適用于多個發行版,但是可用Snaps的控制仍集中在一個地方。另外值得一提的是,知名的開源和閉源軟件在Snap的倉庫中受歡迎。
Snaps***一個重要的特點是,它們不僅限于前面提到的Linux桌面,還旨在為物聯網提供打包解決方案。這是Snaps與Flatpak和AppImage的***區別。Snaps主要側重于物聯網,Linux是額外的好處。
哪種打包類型最適合Linux?
在比較了上述每種打包類型的差異和優點后,我們想知道哪一種***。就簡單性而言,我認為AppImage在這方面勝出。但是如果你希望能夠使用其中一種打包格式來更新軟件,那么Flatpak或Snaps更明智。
一種方法可能是每一個都嘗試一下,看看哪種打包類型擁有你所尋找的用戶體驗和軟件品種。
原文標題:Linux Solutions: Snappy, Flatpak, and AppImage,作者:Matt Hartley
【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】