Linux系统上的软件包管理或软件安装可能非常令人困惑,尤其是对于新手(新Linux用户),因为不同的Linux发行版使用不同的传统软件包管理系统。在大多数情况下,最令人困惑的部分是程序包依赖项的解析/管理。
例如,Debian及其衍生产品(例如Ubuntu)使用.deb通过DPKG软件包管理系统管理的软件包,而RHEL(红帽企业Linux)家族中的发行版则.rpm使用通过RPM软件包管理系统管理的软件包。
在过去的几年中,在通用或交叉分发的软件包管理工具兴起之后,Linux生态系统中的软件包管理和分发从未如此。这些工具使开发人员可以从一个版本中为多个Linux发行版打包其软件或应用程序,从而使用户可以轻松地在多个受支持的发行版上安装相同的软件包。
在本文中,我们将回顾用于Linux的前3个开源通用或交叉分发软件包管理系统。
1.捕捉
Snap是由Ubuntu Linux的制造商Canonical开发的一种流行的开源应用程序/程序包格式和程序包管理系统。现在有几个Linux发行版支持快照,包括Ubuntu,Debian,Fedora,Arch Linux,Manjaro和CentOS / RHEL。
一卡的应用程序与它的依赖性(依赖免费),方便安装在任何Linux发行版,支持卡扣捆绑交叉分布的应用程序。快照可以在台式机,服务器,云或IoT(物联网)中运行。
要创建或捕捉应用程序,请使用snapcraft,框架和功能强大的命令行工具来构建捕捉。要在Linux中安装和使用快照,您需要安装snapd(或snappy守护程序),这是一项使Linux系统能够处理.snap文件的后台服务。快照的实际安装是使用snap命令行工具完成的。
因为它们在限制(不同和可配置的限制级别)下运行,所以默认情况下快照是安全的。重要的是,需要访问超出其限制范围的系统资源的快照会使用“ 接口 ”,该接口由快照的创建者根据快照的要求精心选择。这使您可以在不损害基本操作系统的稳定性和灵活性的情况下运行应用程序。
此外,快照程序包管理系统使用称为通道的概念(由通道,风险级别和分支组成,并由其细分)来确定安装并跟踪了哪个快照版本以进行更新。快照也会自动更新,您可以手动管理该过程。
2. FlatPak
Flatpak是一个著名的开源框架,用于在Linux发行版中发行桌面应用程序。Flatpak由独立社区开发,允许在几乎任何Linux发行版上安装并运行一个应用程序构建。它支持总共25个发行版,包括Fedora,Ubuntu,RHEL,CentOS,OpenSUSE,Arch Linux,也可以在Raspberry Pi上运行。
Flatpak的运行时提供了应用程序可以利用的通用库平台。但是,这也使您可以非常轻松地完全控制依赖项,可以将自己的库捆绑为应用程序的一部分。
Flatpak附带易于使用的构建工具,并为开发人员提供了一致的环境(跨设备相同,类似于用户已经拥有的环境),供开发人员构建和测试其应用程序。
Flatpak的一个有用方面是前向兼容性,其中相同的flatpak可以在同一发行版的不同版本上运行,包括尚未发布的版本。它还努力并继续与Linux发行版的新版本兼容。
如果您是开发人员,则可以通过Flathub(可在所有发行版中分发应用程序的集中服务)将应用程序提供给Linux用户。
3. AppImage
AppImage还是一种开放源代码打包格式,允许开发人员打包一次在所有主要Linux桌面发行版上运行的应用程序。与以前的软件包格式不同,使用AppImage无需安装软件包。只需下载您打算使用的应用程序,使其可执行并运行,就这么简单。它支持大多数32位和64位Linux桌面。
AppImage具有许多优点。对于开发人员而言,无论运行Linux发行版和版本的用户如何,它都使他们能够吸引尽可能多的用户。对于用户而言,他们无需担心应用程序依赖关系,因为每个AppImage都与其所有依赖关系捆绑在一起(一个应用程序=一个文件)。使用AppImage尝试新版本的应用程序也很容易。
对于支持大量台式机系统并且通常阻止用户安装可能破坏系统的应用程序的系统管理员,他们不再需要担心。有了AppImage,系统将保持完整,因为用户不必安装应用程序即可运行它们。
通用或交叉分发软件包格式是在Linux生态系统中构建和分发软件的下一代技术。但是,传统的包装管理系统仍在稳步发展。
※更多文章和资料|点击后方文字直达 ↓↓↓
100GPython自学资料包
阿里云K8s实战手册
[阿里云CDN排坑指南]CDN
ECS运维指南
DevOps实践手册
Hadoop大数据实战手册
Knative云原生应用开发指南
OSS 运维实战手册
云原生架构白皮书
Zabbix企业级分布式监控系统源码文档
Linux&Python自学资料包
10G面试题戳领