Ubuntu Snap 軟體包接管 Linux 桌面和 IoT 軟體的發行
Linux 供應商,獨立軟體開發商和公司門全都採用 Ubuntu Snap 作為多種 Linux 系統的配置和更新程序包。
為什麼呢?因為 Snap 能使一個單一的二進位程序包可以完美、安全地運行在任何 Linux 台式機、伺服器、雲或物聯網設備上。據 Canonical 的 Ubuntu 客戶端產品和版本負責人 Olli Ries 說:
Snap 程序包的安全機制讓我們在更快的跨發行版應用更新中打開了新的局面,因為 Snap 應用是與系統的其它部分想隔離的。用戶可以安裝一個 Snap 而不用擔心是否會影響其他的應用程序和操作系統。
當然了,如 Linux 內核的早期開發者和 CoreOS 安全維護者 Matthew Garrett 指出的那樣:如果你將 Snap 用在不安全的程序中,比如 X11 窗口系統,實際上您並不會獲得安全性。(LCTT 譯註:X11 也叫做 X Window 系統,X Window 系統 ( X11 或 X )是一種點陣圖顯示的視窗系統 。它是在 Unix 和類 Unix 操作系統 ,以及 OpenVMS 上建立圖形用戶界面的標準工具包和協議,並可用於幾乎所有已有的現代操作系統。)
Shuttleworth 同意 Garrett 的觀點,但是他也說你可以控制 Snap 應用是如何與系統的其它部分如何交互的。比如,一個 web 瀏覽器可以包含在一個安全的 Snap 程序包中,這個 Snap 使用 Ubuntu 打包的 openssl TLS 和 SSL 庫。除此之外,即使有些東西影響到了瀏覽器實例內部,也不能進入到底層的操作系統。
很多公司也這樣認為。戴爾、三星、Mozilla、krita(LCTT 譯註:Krita 是一個點陣圖形編輯軟體,KOffice 套裝的一部份。包含一個繪畫程式和照片編輯器,Krita 是自由軟體,並根據GNU通用公共許可證發布)、Mycroft(LCTT 譯註:Mycroft 是一個開源AI智能家居平台,配置 Raspberry Pi 2 和 Arduino 控制器),以及 Horizon Computing(LCTT 譯註:為客戶提供優質的硬體架構為其運行雲平台)都將使用 Snap。Arch Linux、Debain、Gentoo 和 OpenWrt 開發團隊也已經擁抱了 Snap,也會把 Snap 加入到他們各自的發行版中。
Snap 包又叫做「Snaps」,現在已經可以原生的運行在 Arch、Debian、Fedora、Kubuntu、Lubuntu、Ubuntu GNOME、Ubuntu Kylin、Ubuntu MATE、Ubuntu Unity 和 Xubuntu 之上。 Snap 也在 CentOS、Elementary、Gentoo、Mint、OpenSUSE 和 Red Hat Enterprise Linux (RHEL) 上取得了驗證,並且也很容易運行在其他 Linux 發行版上。
這些發行版正在使用 Snaps,Shuttleworth 聲稱:「Snaps 為每個 Linux 台式機、伺服器、設備和雲機器帶來了很多應用程序,在讓用戶使用最好的應用的同時也給了用戶選擇發行版的自由。」
這些發行版共同代表了 Linux 桌面、伺服器和雲系統發行版的主流。為什麼它們從現有的軟體包管理系統換了過來呢? Arch Linux 的貢獻者 Tim Jester-Pfadt 解釋說,「Snaps 最棒的一點是它支持先銳和測試通道,這可以讓用戶選擇使用預發布的開發者版本或跟著最新的穩定版本。」
除過這些 Linux 分支,獨立軟體開發商也將會因為 Snap 很好的簡化了第三方 Linux 應用程序分發和安全維護問題而擁抱 Snap。例如,文檔基金會也將會讓流行的開源辦公套件 LibreOffice 支持 Snap 程序包。
文檔基金會的聯合創始人 Thorsten Behrens 這樣說:
我們的目標是儘可能的使 LibreOffice 能被大多數人更容易使用。Snap 使我們的用戶能夠在不同的桌面系統和發行版上更快捷、更容易、持續地獲取最新的 LibreOffice 版本。更好的是,它也會幫助我們的發布工程師最終從周而復始的、自產的、陳舊的 Linux 開發解決方案中解放出來,很多東西都可以一同維護了。
Mozilla 的 Firefix 副總裁 Nick Nguyen 在該聲明中提到:
我們力求為用戶提供良好的使用體驗,並且使火狐瀏覽器能夠在更多平台、設備和操作系統上運行。隨著引入 Snaps ,對火狐瀏覽器的持續優化成為可能,使它可以為 Linux 用戶提供最新的特性。
Krita 基金會 (基於 KDE 的圖形程序)項目領導 Boudewijn Rempt 說:
在一個私有倉庫中維護 DEB 包是複雜而耗時的。Snaps 更容易維護、打包和分發。把 Snap 放進軟體商店也特別容易,這是我發布軟體用過的最舒服的軟體商店了。Krita 3.0 剛剛作為一個 snap 程序包發行,新版本出現時它會自動更新。
不僅 Linux 桌面系統程序為 Snap 而激動。物聯網(IoT)和嵌入式開發者也以雙手擁抱了 Snap。
由於 Snaps 彼此隔離,帶來了數據安全性,它們還可以自動更新或回滾,這對於硬體設備是極好的。多個廠商都發布了運行著 snappy 的設備(LCTT 譯註:Snap 基於 snappy 進行構建),這帶來了一種新的帶有物聯網應用商店的「智能新銳」設備。Snappy 設備能夠自動接收系統更新,並且連同安裝在設備上的應用程序也會得到更新。
據 Shuttleworth 說,戴爾公司是最早一批認識到 Snap 的巨大潛力的物聯網供應商之一,也決定在他們的設備上使用 Snap 了。
戴爾公司的物聯網戰略和合作夥伴主管 Jason Shepherd 說:「我們認為,Snaps 能解決在單一物聯網網關上部署和運行多個第三方應用程序所帶來的安全風險和可管理性挑戰。這種可信賴的通用的應用程序格式才是戴爾真正需要的,我們的物聯網解決方案合作夥伴和商業客戶都對構建一個可擴展的、IT 級的、充滿活力的物聯網應用生態系統有極大的興趣。」
OpenWrt 的開發者 Matteo Croce 說:「這很簡單, Snaps 可以在保持核心系統不變的情況下遞送新的應用... Snaps 是為 OpenWrt AP 和路由器提供大量軟體的最快方式。」
Shuttleworth 並不認為 Snaps 會取代已經存在的 Linux 程序包比如 RPM 和 DEB。相反,他認為它們將會相輔相成。Snaps 將會與現有軟體包共存。每個發行版都有其自己提供和更新核心系統及其更新的機制。Snap 為桌面系統帶來的是通用的應用程序,這些應用程序不會影響到操作系統的基礎。
每個 Snap 都通過使用大量的內核隔離和安全機制而限制,以滿足 Snap 應用的需求。謹慎的審核過程可以確保 Snap 僅僅得到其完成請求操作的許可權。用戶在安裝 Snap 的時候也不必考慮複雜的安全問題。
Snap 本質上是一個自包容的 zip 文件,能夠快速地在包內執行。流行的優麒麟團隊的負責人 Jack Yu 稱:「Snaps 比傳統的 Linux 包更容易構建,允許我們獨立於操作系統解決依賴性,所以我們很容易地跨發行版為所有用戶提供最好、最新的中國 Linux 應用。」
由 Canonical 設計的 Snap 程序包格式由 snapd 所處理。它的開發工作放在 GitHub 上。將其移植到更多的 Linux 發行版已經被證明是很簡單的,社區還在不斷增長,吸引了大量具有 Linux 經驗的貢獻者。
Snap 程序包使用 snapcraft 工具來構建。項目官網是 snapcraft.io,其上有構建 Snap 的指導和逐步指南,以及給項目開發者和使用者的文檔。Snap 能夠基於現有的發行版程序包構建,但通常使用源代碼來構建,以獲得優化和減小軟體包大小。
如果你不是 Ubuntu 的忠實粉絲或者一個專業的 Linux 開發者,你可能還不知道 Snap。未來,在任何平台上需要用 Linux 完成工作的任何人都會知道這個軟體。它會成為主流,尤其是在 Linux 應用程序的安裝和更新機制方面。
作者:Steven J. Vaughan-Nichols 譯者:vim-kakali 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive