我(大致)了解按扣包裝的工作原理。但「snap」、「snapd」和「Snappy」到底指的是什麼?
似乎「snap」指的是很多東西(套件格式、終端指令...),「snapd」是一個特定的工具,「Snappy」不再使用[1] [2]?
[1]:我能找到的唯一官方提及是這個 Ubuntu 桌面頁面的標題和 URL:https://www.ubuntu.com/desktop/snappy
[2]:我記得 Ubuntu Core 曾經被稱為 Snappy Ubuntu Core,但現在已經不再這樣了:https://developer.ubuntu.com/core
答案1
- 折斷:
meta/snap.yaml
一種特定的打包格式,定義為包含下列檔案的 squashfs 映像:具體格式。 - 快照商店:可以從中下載/安裝快照的中央儲存庫。
- 快照工藝:用於建立快照(認為快照的 pbuilder)並(可選)將它們放置在儲存中的命令列工具。
- 快照:執行快照所需的守護程式(從商店下載它們、將它們安裝到位、限制它們、運行應用程式等)。 Snapd還包含
snap
命令,用於與snapd通訊(用於用戶請求安裝新的snap等)
整個系統有時被稱為“snappy”。令人困惑的是,我也看到它越來越多地被稱為“snapcraft”。雖然 snaps 在普通 Ubuntu(實際上還有各種其他 Linux 發行版)上運行,但 Ubuntu Core 是一個完全基於 snap 的作業系統(無論如何apt
)。不幸的是,已經有一個“ubuntu core”是Ubuntu的基本rootfs,因此為了區分,它被稱為“snappy ubuntu core”。舊核心最近更名為ubuntu基地,這就是為什麼現在你很少看到「snappy ubuntu core」了。
答案2
Snappy 是最初由 Canonical 為 Ubuntu 手機作業系統設計和建構的軟體部署和套件管理系統。這些軟體包稱為“snaps”,以及使用它們的工具“snapd”,可在一系列 Linux 發行版上運行,因此允許與發行版無關的上游軟體部署。該系統設計用於電話、雲端、物聯網和桌面運算。
「Snap」應用程式套件是獨立的,可以在一系列 Linux 發行版上運行。這與傳統的 Linux 套件管理方法(例如 APT 或 RPM)不同,後者需要在應用程式更新時針對每個 Linux 發行版專門調整套件,從而延遲從開發人員到軟體最終用戶的應用程式部署。 Snap 本身不依賴任何外部商店(「應用程式商店」),可以從任何來源獲取,因此可用於上游軟體部署。當在 Ubuntu 和其他版本的 Linux 上部署 snap 時,Ubuntu 應用程式商店將用作預設後端,但也可以啟用其他商店。
開發人員可以使用 snap 來建立命令列工具、後台服務以及桌面應用程式。使用快照應用程序,可以透過原子操作或增量進行升級。
2016 年 6 月,snapd 移植到廣泛的 Linux 發行版中,使 snaps 可以在任何 Linux 發行版上使用,而不僅僅是全快照的 Ubuntu Core。 snapd 也可用於或正在開發用於 Arch Linux、CentOS、Debian、Fedora、Gentoo Linux、OpenWrt、openSUSE 和 Red Hat Enterprise Linux。每個發行版都能夠解釋快照元數據,以特定於發行版的方式實現快照的安全性或其他期望。