动机linux
根据Flatpak和Snap的声明,背后的主要动机是使同一版本的应用程序可以运行在多个 Linux 发行版。安全
“从一开始它的主要目标是容许相同的应用程序运行在各类 Linux 发行版和操做系统上。”—— Flatpak
“通用 Linux 包格式,使简单的二进制包可以完美的、安全的运行在任何 Linux 桌面、服务器、云和设备上。”——Snap
说得更具体一点,站在 Snap 和 Flatpak (如下称之为 S&F)背后的人认为,Linux 平台存在碎片化的问题。这个问题致使了开发者们须要作许多没必要要的工做来使他的软件可以运行在各类不一样的发行版上,这影响了整个平台的前进。服务器
因此,做为 Linux 发行版(Ubuntu 和 Red Hat)的领导者,他们但愿消除这个障碍,推进平台发展。可是,是不是更多的我的收益刺激了 S&F 的开发?测试
我的收益?操作系统
虽然没有任何官方声明,可是试想一下,若是可以创造这种可能会被大多数发行版(即使不是所有)所采用的打包方式,那么这个项目的领导者将可能成为一个可以决定 Linux 大船航向的重要人物。教程
优点开发
这种独立包的好处多多,而且取决于不一样的因素。这些因素基本上能够归为两类:编译
用户角度打包
+ 从 Liunx 用户的观点来看:Snap 和 Flatpak 带来了将任何软件包(软件或应用)安装在用户使用的任何发行版上的可能性。软件
例如你在使用一个不是很流行的发行版,因为开发工做的缺少,它的软件仓库只有很稀少的包。如今,经过 S&F 你就能够显著的增长包的数量,这是一个多么美好的事情。
+ 一样,对于使用流行的发行版的用户,即便该发行版的软件仓库上有不少的包,他也能够在不改变它现有的功能库的同时安装一个新的包。
比方说, 一个 Debian 的用户想要安装一个 “测试分支” 的包,可是他又不想将他的整个系统变成测试版(来让该包运行在更新的功能库上)。如今,他就能够简单的想安装哪一个版本就安装哪一个版本,而不须要考虑库的问题对于持后者观点的人,可能基本上都是使用源文件编译他们的包的人,然而,除非你使用相似 Gentoo 这样基于源代码的发行版,不然大多数用户将从头编译视为是一个恶心到吐的事情。
+ 高级用户,或者称之为 “拥有安全意识的用户” 可能会以为更容易接受这种类型的包,只要它们来自可靠来源,这种包倾向于提供另外一层隔离,由于它们一般是与系统包想隔离的。
* 不管是 Snap 仍是 Flatpak 都在不断努力加强它们的安全性,一般他们都使用 “沙盒化” 来隔离,以防止它们可能携带病毒感染整个系统,就像微软 Windows 系统中的 .exe 程序同样。(关于微软和 S&F 后面还会谈到)
开发者角度
与普通用户相比,对于开发者来讲,开发 S&F 包的优势可能更加清楚。这一点已经在上一节有所提示。尽管如此,这些优势有:
+ S&F 经过统一开发的过程,将多发行版的开发变得简单了起来。对于须要将他的应用运行在多个发行版的开发者来讲,这大大的减小了他们的工做量。
++ 所以,开发者可以更容易的使他的应用运行在更多的发行版上。
+ S&F 容许开发者私自发布他的包,不须要依靠发行版维护者在每个/每一次发行版中发布他的包。
++ 经过上述方法,开发者能够不依赖发行版而直接获取到用户安装和卸载其软件的统计数据。
++ 一样是经过上述方法,开发者能够更好的直接与用户互动,而不须要经过中间媒介,好比发行版这种中间媒介。
缺点
– 膨胀。就是这么简单。Flatpak 和 Snap 并非凭空变出来它的依赖关系。相反,它是经过将依赖关系预构建在其中来代替使用系统中的依赖关系。
就像谚语说的:“山不来就我,我就去就山”。
– 以前提到安全意识强的用户会喜欢 S&F 提供的额外的一层隔离,只要该应用来自一个受信任的来源。可是从另一个角度看,对这方面了解较少的用户,可能会从一个不靠谱的地方弄来一个包含恶意软件的包从而致使危害。
上面提到的观点能够说是有颇有意义的,虽然说今天的流行方法,像 PPA、overlay 等也多是来自不受信任的来源。可是,S&F 包更加增长这个风险,由于恶意软件开发者只须要开发一个版本就能够感染各类发行版。相反,若是没有 S&F,恶意软件的开发者就须要建立不一样的版本以适应不一样的发行版。
原来微软一直是正确的吗?
考虑到上面提到的,很显然,在大多数状况下,使用 S&F 包的优势超过缺点。至少对于二进制发行版的用户,或者重点不是轻量级的发行版的用户来讲是这样的。
这促使我问出这个问题,可能微软一直是正确的吗?若是是的,那么当 S&F 变成 Linux 的标准后,你还会一如既往的使用 Linux 或者类 Unix 系统吗?很显然,时间会是这个问题的最好答案。
不过,我认为,即便不彻底正确,可是微软有些地方也是值得赞赏的,而且以个人观点来看,全部这些方式在 Linux 上都立马能用也确实是一个亮点。
免费提供最新Linux技术教程书籍,为开源技术爱好者努力作得更多更好:http://www.linuxprobe.com/