为什么Ubuntu转储.deb
软件包并转移到.snap
软件包?
至少到目前为止,他们正在.deb
为正常发行保留软件包。.deb
已经是最受欢迎的包装形式。
这给出了有关Snap软件包格式是什么的想法。但是现有的deb软件包会发生什么?转向Snap有明显的优势吗?值得付出痛苦吗?
Snap试图解决Linux作为桌面操作系统的一个基本问题:软件可用性和软件分发。但是,Snap并不是要完全替换deb。快照和Debs相互配合。
我是Linux的狂热者,也是Linux应用程序的项目经理。虽然我整体上喜欢Linux系统,但我无法忍受当前软件包分发的状态。Snaps等通用应用格式旨在解决这一基本问题。
在Linux中,软件包是专门为单个发行版的单个版本构建的。通过大量的调整,可以使一个.deb
程序包在所有基于Debian的系统上运行,但这很复杂并且限制了开发人员。由于依赖项的版本锁定,有时也不可行。
如果我为Ubuntu 20.04创建一个deb软件包,它将仅在该版本上工作。我还必须为16.04、18.04、20.10等制作不同的程序包。我已经有做四个软件包只为Ubuntu。我还需要为每个Debian版本,每个Fedora版本和每个openSUSE版本创建一个。RPM在这方面更加灵活,但是锁定的依赖关系问题仍然存在。
这意味着如果我想发布我的应用程序的新版本,我必须创建20多个软件包来覆盖大多数Linux发行版,而仍然不能涵盖所有发行版。第二种可能性是等待分发维护者将您的软件包添加到分发中,但这通常会花费大量的时间。而且,然后,发行维护者决定他们的用户获得哪个版本,而不是软件开发者。
使用Snap,可以在支持Snap的每个发行版的每个版本上运行单个软件包。有关支持它的许多发行版的列表,请参见安装快照。
此外,使用Snap,开发人员可以发布并维护package,而不是发布维护者。因此,作为开发人员,我可以向所有用户发布新版本,而无需等待其他任何人。
本质上,我讨厌Linux软件包分发的所有内容都由Snap解决。尽管必须注意,Flatpaks也在一定程度上解决了这些核心问题,AppImages也在一定程度上解决了这些核心问题。对此格式更好的讨论引起了激烈的辩论,并且对话时间更长,因此对此答复没有任何意义。现在,我会说我可以运行任何通用格式,因为它们都以不同的方式工作,因此彼此之间没有冲突,因此可以同时运行所有3个和传统程序包。
TL; DR
Linux软件包分发对于开发人员和用户都非常糟糕。Snap,Flatpaks和AppImage旨在解决基于Linux的系统中的这一基本问题。
这个问题确实是关于为什么要采取行动的问题,但是是否有人有兴趣了解更多有关Snaps是什么以及它们如何工作的信息。我创建了此视频以深入解释该结构。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句