在 Linux 分發應用不總是那么容易。有各種不同的包格式、基礎系統、可用庫,隨著發行版的一次次發布,所有的這些都讓人頭疼。然而,現在我們有了更簡單的東西:Snap。
Snap 是開發者打包他們應用的新途徑,它相對于傳統包格式,如 .deb,.rpm 等帶來了許多優點。Snap 安全,彼此隔離,宿主系統使用了類似 AppArmor 的技術,它們跨平臺且自足的,讓開發者可以準確地將應用所需要的依賴打包到一起。沙盒隔離也加強了安全,并允許應用和整個基于 snap 的系統,在出現問題的時候可以回滾。Snap 確實是 Linux 應用打包的未來。
創建一個 snap 包并不困難。首先,你需要一個 snap 基礎運行環境,能夠讓你的桌面環境認識并運行 snap 軟件包,這個工具叫做 snapd ,默認內置于所有 Ubuntu 16.04 系統中。接著你需要創建 snap 的工具 Snapcraft,它可以通過一個簡單的命令安裝:
Snap 使用一個特定的 YAML 格式的文件 snapcraft.yaml,它定義了應用是如何打包的以及它需要的依賴。用一個簡單的應用來演示一下,下面的 YAML 文件是個如何 snap 一個 moon-buggy 游戲的實際例子,該游戲在 Ubuntu 源中提供。
在你的 snapcraft.yaml 所在目錄下運行 snapcraft ,它會創建 moon-buggy1.0.51.11amd64.snap 包,可以通過以下命令來安裝它:
新聞熱點
疑難解答