标签 snap 下的文章

CanonicalUbuntu 创始人 Mark Shuttleworth 在一次采访中说他不准备宣布 Ubuntu 的新 Snap 程序包格式。但是就在几个月之后,很多 Linux 发行版的开发者和公司都宣布他们会把 Snap 作为通用 Linux 程序包格式。

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 程序包比如 RPMDEB。相反,他认为它们将会相辅相成。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 应用程序的安装和更新机制方面。


via: http://www.zdnet.com/article/ubuntu-snap-takes-charge-of-linux-desktop-and-iot-software-distribution/

作者:Steven J. Vaughan-Nichols 译者:vim-kakali 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Snappy 和 Flatpak 之间的争吵仍在继续中,现在 Canonical 在刚刚发布的 Fedora 24 上演示了创建一个厂商无关的 Snap 商店是多么的简单。

Snap 宣传它是面向各个主要 Linux 发行版的通用二进制软件包格式,人们对此非常关注,也有很多议论。就在几天前, Canonical 和 Ubuntu 的创始人 Mark Shuttleworth 对这些人们重点关注的问题做了一番答复,表示 Canonical 并不指望别的操作系统使用 Ubuntu 的 snap 商店,你们完全可以自己搞嘛,就是个 HTTPS 而已。

针对指责 Snap 商店没有开源的意见,Canonical 的 Ubuntu 产品与战略总监 Dustin Kirkland 说,“事实上,你可以在任何支持 Snap 的操作系统上运行你的 Snap 商店,真的。”

一个可以提供 Snap 软件包服务的最简单的示例商店

Dustin 给我们介绍了一个由开发者 Bret Barker 发布在 GitHub 上的一个概念性的独立 Snap 商店,这个软件以 Apache 许可证开源,你可以在 GitHub 上 fork 它,并安装到任何 GNU/Linux 发行版上去。

服务器端(Snap 商店)

“首先,我启动一个 AWS 实例,当然,我可以启动一个 Ubuntu 16.04 LTS 实例,但实际上我启动的是一个 Fedora 24 实例。”

如果你的机器上已经有了 snap 环境,你可以直接用:

snap install snapstore-example

来安装这个示例商店。

如果没有,你可以手动来安装。首先安装 python 虚拟环境:

sudo dnf install python-virtualenv

克隆这个示例商店的代码:

git clone https://github.com/noise/snapstore.git
cd snapstore

设置虚拟环境并安装依赖包:

virtualenv env
. env/bin/activate
pip install -r requirements.txt

运行:

python store.py

这样 snap 商店就安装好了,它会监听在默认的 5000 端口上。

Snap 商店监听在 5000 端口上

客户端

在 Fedora 24 上运行

sudo dnf install snapd 

来安装 Snappy,它同时也会安装必要的依赖包,如: squashfs-tools、kernel-modules。

你可以通过安装一个测试包来看看 snap 是否正常工作:

sudo snap install hello

如果正常的话,然后修改 /etc/environment,加入你的商店 URL,强制 snapd (Snappy 守护进程)与刚刚创建的 Snap 商店连接:

SNAPPY_FORCE_CPI_URL=http://localhost:5000/api/v1/

重启 snapd:

sudo service snapd restart

这个示例商店支持如下命令来查找和安装 snap 软件包:

snap find foobar25
sudo snap install foobar25

使用 snap 去查找软件包

更多可以看 Dustin 的原文或这个示例商店的说明

当 Canonical 宣布他们的 Snappy 方案已可以用于包括 Debian、Arch Linux、OpenWrt 在内的一些主流 Linux 发行版时,遭遇到了一些来自社区的反驳意见,还有人问 Canonical 是否已经准备好给其它的发行版提供 Snap 软件包。

每个人都会首先问道,“为什么我没有见到 Snappy 服务器的源代码出现?”有些人对 Canonical 在其 Snap 发布公告中的许多内容表示了不满,特别是,Canonical 并没有发布 Snappy 商店的源代码,人们通过 snapcraft.io 网站提交了 Snap 软件包后根本不知道后面都发生了什么。

如果开发者想使用 Snap 软件包跨多个 GNU/Linux 发行版发布软件的话,在 snapcraft.io 上所提供的指导中有一个步骤需要开发者接受在社区争议很大的 Ubuntu CLA( 贡献者许可同意书 Contributor License Agreement )。

Snap 并不依赖商店

前几天,就是 6 月 23 日的时候,Canonical 和 Ubuntu 的创始人 Mark Shuttleworth 在给社区的一封邮件中透露了一些信息:从设计上来说, Snap 事实上并不依赖于某个商店,这意味着应用开发者可以建立他们自己的商店。不过,从另外一个方面来说,说明他也并不指望其它的发行版会从 Ubuntu Snappy 商店中获取 Snap 软件包。

“Snap 软件包格式本质上并不依赖商店,你可以在系统里面采用 Snap ,而不用管它是如何到达系统的。所以,当前的商店解决方案并没有什么关系,”Mark Shuttleworth 说,“我并不指望别的发行版会去从 Ubuntu 获取 Snap 软件,除非这里有他们需要的软件包,Snap 可以很容易的用于 Debian.org 。”

他也回应了那些批评 Canonical 在 Snap 格式上不公平竞争的指责,他说:“从某种意义上说,Snap 是顺应发展而出现的——当然,Ubuntu 有个很庞大的商店,因为我们已经在移动和物联网方面努力了好多年了。但是这并不是非难 Snap 的原因,我觉得恰恰相反。”

据 Mark Shuttleworth 说,应用开发者要从他们自己的商店分发 Snap 的最简单的办法就是通过 HTTPS。他认为,很显然选择了 Snap 格式在多个平台上分发的人可以在他自己的代码里面实现这个。当然,你可以可以采用其他的类似解决方案,包括最新发布的 Flatpak 或 AppImage。

GNOME 项目组的 Allan Day 正式发布了 Flatpak。

这并不是我们第一次提及 Flatpak,你可能已经知道它是一个无依赖关系的、跨发行版的软件打包框架,它可以让用户在多个基于 Linux 内核的操作系统上使用各种桌面应用程序。有些人可能记得 Flatpak 之前的名字叫做 XDG-App。

Flatpak 是应 GNU/Linux 和开源软件开发者所需而出现的,可以让他们在多个桌面平台、操作系统上发行软件时,不用花费几个小时乃至几天来为各个主要 Linux 发行版进行打包工作。

Flatpak 的首席开发者 Alexander Larsson 说,“Linux 上的应用开发者总是不能直接接触到他们的用户,但是 Flatpak 改变了这种情况,开发者们现在能够真正知道他们的用户要的是什么。这次 Flatpak 的发布让这一切变为现实。”

以安全为主导的设计

据 Flatpak 开发团队称,几个重要的开源项目已经为其支持的操作系统以 .flatpak 格式发布了他们的应用,这些开源项目包括 LibreOffice、InkScape、GIMP、MyPaint 和 Darktable。作为 GNOME 项目开发的一部分,几个来自 GNOME 家族的应用也会以 Flatpak 格式打包。

我们之前刚刚说过,即将发布的 LibreOffice 5.2 办公套件将采用 Flatpak 格式打包,支持各种常见的发行版,包括 Arch Linux、Debian、Ubuntu、Fedora、Mageia 和 Gentoo 等。 此外,图形化软件包管理器“GNOME 软件”也支持 Flatpak 格式。

但最棒的是,Flatpak 是围绕安全进行设计的,它为用户提供了沙盒技术,打包在其中的应用软件只能访问 Flatpak 容器内部和宿主库以及操作系统接口。

“下一个 Flatpak 主要版本将全部都是沙盒化的”, Alexander Larsson 在 Flatpak 的官方声明中说,“应用作者会在沙盒中看到一套与操作系统交互的更完整界面。”

要更多了解 Flatpak,请访问其官网,你可以找到在上述提及的 GNU/Linux 操作系统中的安装建议。如果尚不支持你的操作系统,也不用担心,Flatpak 正在不断支持其它的发行版,相信很快就能看到。

今日关注

继 Snapd 2.0.3 发布一个月之后,2.0.8 发布。这一新版本新增了一个命令 "snap try",这一命令允许挂载任何包含了未打包的快照包的目录,从而便于修改快照包,使得测试快照软件包更加快捷。比如,如果你使用 Snapcraft,可以在工作目录执行 snap try prime/ 命令,将 prime/ 作为已安装的快照包进行挂载,并对该快照包进行修改。另一个新特性是要为了在多种 Linux 操作系统上打包应用,使用“os-release” 文件替代了原来的“lsb-release”。同时这一新版本也新增了许多桌面接口。详细的变更日志在此

作为对 Canonical 推出的 快照包 snap 的积极响应,LibreOffice 5.2 Beta 2 版本除了发布传统的 .deb 和 .rpm 外, 还发布了 快照包 snap 。打开终端,输入下面命令即可进行安装:

wget http://people.canonical.com/~bjoern/snappy/libreoffice_5.2.0.0.beta2_amd64.snap{,.sha512sum}
sha512sum -c libreoffice_5.2.0.0.beta2_amd64.snap.sha512sum && sudo snap install --devmode libreoffice_5.2.0.0.beta2_amd64.snap /snap/bin/libreoffice

当然也可以使用一行简单的命令进行卸载:

sudo snap remove libreoffice

新闻摘要

  • Parsix GNU/Linux 8.5 & 8.10 发布更新。两个版本都对几个安全问题进行了修复。目前已经可以下载了。同时,Parsix 8.10 (Erik) 的用户可以下载 Firefox 47.0了。
  • 基于 Arch Linux 的 Antergos 2016.06.14 ISO 发布,这个版本并没有什么重大变化,不过这是最后一个支持32位机的版本,其以后的版本不再支持32位机了。另外,Antergos 用户可以使用 Cinnamon 3.0 和 MATE 1.14 桌面环境了。
  • Wine 1.8.3 稳定版发布。Wine 1.8 系列的用户可以进行下载更新了。
  • Salix Xfce 14.2 Beta版本发布。新版本改善了启动菜单,允许用户自己选择安装语言。64位的 ISO 镜像采用 ELILO 作为默认的启动加载器。32位镜像支持 i686 PAE 和 i586 非 PAE 平台。这一版本采用了炫丽、轻量级的 Xfce 4.12 桌面环境。已经可以下载体验了。
  • NethServer 6.8 正式发布。基于 Red Hat Enterprise Linux 6.8 操作系统。这一版本增加了用于管理防火墙内置的路由规则策略的接口模块,以及更加简单的 Multi WAN 配置面板,更好的垃圾邮件过滤等新特性。目前已经可以下载体验了。

今日关注

KDE Plasma 5.6 系列的最后一个更新版本 5.6.5 发布。Plasma Workspace、Plasma 网络管理器(plasma-nm)、Milou、KWin、Plasma Addons、Plasma Discover、plasma-integration、kde-cli-tools 以及 Plasma Desktop 都进行了相应的改进。KDE Plasma 5.7 Beta 版本将于6月16日开始进行公测,而正式版将在7月5日发布。

此外,与之配合的 KDE Applications 16.04.2 发布。KDE Applications 16.04.3 将会是这个系列的最后一个更新版本,预计7月12日发布,以配合 KDE Plasma 5.7.1。

快照软件包 Snap Packages 将成为所有 GNU/Linux 系统通用的二进制格式的软件包。目前很多流行的 GNU/Linux 操作系统已经支持这种格式。像 Mozilla Firefox、LibreOffice 还有 Krita 已经开始改造成快照包的形式了。详情请进

新闻摘要

  • GParted Live 0.26.1-1 发布。这一版本提供了对小于 16 TiB 的 32位 EXT4文件系统的启动加载器的支持。
  • antiX 16 Linux 的第一个发行候选版本发布。搭载了 Linux 4.4.10 内核。默认浏览器是 Mozilla Firefox ESR 。目前已经可以下载体验了。