Linux通用的跨發(fā)行版的3大軟件包管理器
前言
本文主要介紹Linux系統(tǒng)上通用的跨發(fā)行版的3大軟件包管理器。
Linux系統(tǒng)上的軟件包管理可能非常令人困惑,尤其是對于新手,因?yàn)椴煌腖inux發(fā)行版使用不同的包管理系統(tǒng)。在大多數(shù)情況下,最令人困惑的部分是軟件包依賴項(xiàng)的解析和管理。
例如,Debian及其衍生產(chǎn)品Ubuntu使用.deb和dpkg包管理系統(tǒng),RHEL (Red Hat Enterprise Linux)家族使用.rpm包及其對應(yīng)的管理工具。
在過去的幾年里,隨著通用軟件包管理工具或跨發(fā)行版的軟件包管理工具的興起,Linux生態(tài)系統(tǒng)中的軟件包管理和分發(fā)已經(jīng)變得不一樣了。這些工具允許開發(fā)人員將他們的軟件或應(yīng)用程序從單個構(gòu)建打包到多個Linux發(fā)行版,這使得用戶可以輕松地在多個受支持的發(fā)行版上安裝相同的包。
在本文中,我們將介紹比較流行的三種Linux開源通用或跨發(fā)行版軟件包管理系統(tǒng)。
1. snap
snap是一個流行的開源應(yīng)用程序,它也是一個軟件包管理系統(tǒng),由Canonical開發(fā),Ubuntu Linux的制造商。一些Linux發(fā)行版現(xiàn)在支持快照,包括Ubuntu、Debian、Fedora、Arch Linux、Manjaro和CentOS/RHEL。
snap應(yīng)用程序是一種跨發(fā)行版應(yīng)用程序,它與所有依賴項(xiàng)(或無依賴項(xiàng))捆綁在一起,便于安裝在任何支持snaps的Linux發(fā)行版上。snap可以在桌面、服務(wù)器、云或物聯(lián)網(wǎng)上運(yùn)行。
要創(chuàng)建snap應(yīng)用程序,可以使用框架snapcraft和用于構(gòu)建snap的強(qiáng)大命令行工具。要在Linux中安裝和使用快照,需要安裝snapd(或snappy守護(hù)進(jìn)程),這是一種允許Linux系統(tǒng)使用.snap文件的后臺服務(wù)。snap的實(shí)際安裝是使用snap命令行工具完成的。
snap在默認(rèn)情況下是安全的。重要的是,需要訪問其限制之外的系統(tǒng)資源的snap使用了一個接口,該接口是由snap的創(chuàng)建者根據(jù)snap的需求精心挑選的。這使您能夠在不影響基本操作系統(tǒng)的穩(wěn)定性和靈活性的情況下運(yùn)行應(yīng)用程序。
此外,snap包管理系統(tǒng)使用稱為通道的概念(它由跟蹤、風(fēng)險級別和分支組成,并被細(xì)分)來確定安裝和跟蹤哪一個snap版本的更新。snaps還可以自動更新,這是一個可以手動管理的過程。
2. flatpak
flatpak是一個著名的用于在Linux發(fā)行版上發(fā)布桌面應(yīng)用程序的開源框架。由獨(dú)立社區(qū)開發(fā)的flatpak允許在幾乎任何Linux發(fā)行版上安裝和運(yùn)行單個應(yīng)用程序構(gòu)建。它總共支持25個發(fā)行版,包括Fedora, Ubuntu, RHEL, CentOS, OpenSUSE, Arch Linux,也可以在Raspberry Pi上運(yùn)行。
flatpak的運(yùn)行時提供了應(yīng)用程序可以利用的公共庫的平臺。但是,它也使完全控制依賴關(guān)系變得極其容易,您可以將自己的庫綁定為應(yīng)用程序的一部分。
flatpak提供了易于使用的構(gòu)建工具,并為開發(fā)人員構(gòu)建和測試他們的應(yīng)用程序提供了一致的環(huán)境(跨設(shè)備相同且與用戶已有的環(huán)境相似)。
flatpak可向前兼容性,即相同的flatpak可以在相同發(fā)行版的不同版本上運(yùn)行,包括開發(fā)人員尚未發(fā)布的版本。它還努力并繼續(xù)與Linux發(fā)行版的新版本兼容。
如果您是一名開發(fā)人員,您可以通過Flathub讓您的應(yīng)用程序?qū)inux用戶可用,F(xiàn)lathub是一個用于在所有發(fā)行版上分發(fā)應(yīng)用程序的集中服務(wù)。
3. AppImage
AppImage也是一種開源包格式,允許開發(fā)人員一次打包一個應(yīng)用程序,它可以在所有主要的Linux桌面發(fā)行版上運(yùn)行。與前面的包格式不同,對于AppImage,不需要安裝包。只需下載你打算使用的應(yīng)用程序,讓它可執(zhí)行,然后運(yùn)行它——就是這么簡單。它支持大多數(shù)32位和64位Linux桌面。
AppImage有很多優(yōu)點(diǎn)。對于開發(fā)人員來說,它使他們能夠接觸到盡可能多的用戶,不管用戶運(yùn)行哪種Linux發(fā)行版。對于用戶來說,他們不需要擔(dān)心應(yīng)用程序依賴關(guān)系,因?yàn)槊總€AppImage都與它所有的依賴關(guān)系綁定在一起(一個應(yīng)用等于一個文件)。用AppImage嘗試新版本的應(yīng)用程序也很容易。
管理管理員不再通過阻止普通用戶安裝軟件的方式保證系統(tǒng)的安全和一致性。有了AppImage,系統(tǒng)將保持完整,因?yàn)橛脩舨槐匕惭b應(yīng)用程序來運(yùn)行它們。
通用跨發(fā)行版的軟件包格式是在Linux生態(tài)系統(tǒng)中構(gòu)建和分發(fā)軟件的下一代技術(shù)。然而,傳統(tǒng)的包管理系統(tǒng)仍然占據(jù)著一席之地。
原文鏈接:https://www.linuxrumen.com/rmxx/1815.html