当前位置: 首页 > 科技观察

走遍所有发行版的Snap和Flatpak包真的有用吗?

时间:2023-03-21 19:10:58 科技观察

深入了解开始渗透Linux生态系统的新一代打包格式最近我们听到越来越多关于Ubuntu的Snap包和由RedHat员工AlexanderLarsson创建的Flatpak(曾称为xdg-app).)消息。这两种下一代打包方式,本质上有着相同的目标和特点:不依赖于第三方系统函数库的独立打包。Linux的这一新技术方向似乎很自然地提出这样的问题:独立包的优点/缺点是什么?这会让我们找到更好的Linux系统吗?其背后的动机是什么?为了回答这些问题,让我们仔细看看Snap和Flatpak。动机根据Flatpak和Snap的说法,这背后的主要动机是让同一个版本的应用程序能够运行在多个Linux发行版上。“从一开始,它的主要目标就是让相同的应用程序能够在各种Linux发行版和操作系统上运行。”-Flatpak“...'snap'通用Linux包格式,使简单的二进制包能够在任何Linux桌面、服务器、云和设备上安全可靠地运行。”——Snap更具体的说,Snap和Flatpak(以下简称S&F)背后的人认为,Linux平台是碎片化的问题。这个问题导致开发者做了很多不必要的工作来让他的软件运行在各种发行版,影响了整个平台的进程。所以,作为Linux发行版(Ubuntu和RedHat)的领导者,他们想打破这个障碍,推动平台的发展。但是,是否更多的个人利益刺激了S&F的开发?个人利益?没有官方声明,但想象一下,如果有可能创建这种可能被大多数(如果不是全部)发行版采用的包装,那么这个项目的领导者可能会成为一个重要的人可以确定Linuxship的航向优点这个独立包的优点很多,取决于不同的因素。这些因素基本上可以分为两类:用户视角1.从Liunx用户的角度来看:Snap和Flatpak带来了在用户使用的任何发行版上安装任何软件包(软件或应用程序)的可能性。假设您正在使用一个不太流行的发行版,由于缺乏开发工作,其存储库只有非常好的包。现在,有了S&F,您可以显着增加包裹的数量,这是一件多么美妙的事情。2.同样,流行发行版的用户可以在不更改其现有库的情况下安装新包,即使该发行版的存储库中有很多包。假设一个Debian用户想要安装一个“测试分支”包,但他不想将他的整个系统变成测试版(让包在更新的存储库上运行)。现在,他可以简单地安装他想安装的版本,而无需考虑库。对于持后一种观点的人来说,他们可能基本上都是从源文件编译他们的包的人,但是,除非你使用像Gentoo这样的基于源代码的发行版,否则大多数用户会认为从头开始编译是一件令人厌恶的事情。.3.高级用户,或者他们所说的“注重安全的用户”,可能会发现它更容易接受这种类型的包,只要它们来自可靠的来源,这往往会提供另一层隔离,因为它们“通常与要隔离的系统包相关联。*Snap和Flatpak都在不断努力增强安全性,它们通常使用“沙盒”进行隔离,以防止它们可能携带病毒感染整个系统,就像MicrosoftWindows系统中的.exe程序一样。(关于微软和S&F后面会讲到)从开发者的角度来说,相比普通用户,开发S&F包的优势对于开发者来说可能更加清晰。这在上一节中已经提到。尽管如此,优点是:S&F通过统一开发过程简化了多发行版开发。这大大减少了需要在多个发行版上运行应用程序的开发人员的工作量。因此,开发人员可以更轻松地让他的应用程序运行在更多的发行版上。S&F允许开发人员私下分发他的包,而不依赖于分发维护者在每个/每个版本中发布他的包。通过上述方法,开发者可以不依赖发行版,直接获取用户安装和卸载软件的统计数据。同样通过以上方式,开发者可以更好的直接与用户进行交互,而不需要经过中介,比如发行等中介。缺点1.膨胀。就这么简单。Flatpak和Snap并没有凭空变出它的依赖项。相反,它通过将依赖项预先构建到系统中来使用系统中的依赖项。俗话说:“山不来,我上山”。2.如前所述,只要应用程序来自可信来源,注重安全的用户就会喜欢S&F提供的额外隔离层。但从另一个角度来看,对这方面了解较少的用户可能会从不可靠的地方得到一个包含恶意软件的包并造成危害。上面提到的几点可以说是有道理的,虽然现在流行的方法,像PPA、overlay等,也可能来自不可信的来源。然而,S&F包更加增加了这种风险,因为恶意软件开发者只需要开发一个单一的版本就可以感染各种发行版。相反,如果没有S&F,恶意软件开发人员将需要为不同的发行版创建不同的版本。那么微软一直以来都是对的吗?考虑到上述情况,显然在大多数情况下使用S&F包的优势大于劣势。至少对于二进制发行版或重点不是轻量级的发行版的用户而言。这促使我提出一个问题,微软一直以来都是对的吗?如果是的话,当S&F成为Linux的标准时,你还会像往常一样使用Linux或类Unix系统吗?很显然,时间将会是这个答案。然而,我认为微软对此有一定的功劳,即使不是很正确,而且所有这些东西在Linux上开箱即用的事实在我看来确实是一个亮点。