Správce balíčků - Package manager
A správce balíčků nebo systém správy balíčků je sbírka softwarových nástrojů, která automatizuje proces instalace, upgradu, konfigurace a odebrání počítačových programů pro a počítač je operační systém důsledně.[1]
Správce balíčků se zabývá balíčky, distribuce softwaru a dat v systému Windows archivovat soubory. Balíčky obsahují metadata, jako je název softwaru, popis jeho účelu, číslo verze, prodejce, kontrolní součet (nejlépe a kryptografická hashovací funkce ) a seznam závislosti nezbytné pro správné fungování softwaru. Po instalaci jsou metadata uložena v místní databázi balíčků. Správci balíků obvykle udržují databázi závislostí softwaru a informace o verzi, aby zabránili neshodám softwaru a chybějícím předpokladům. Úzce s nimi spolupracují softwarová úložiště, správci binárního úložiště, a obchody s aplikacemi.
Správci balíčků jsou navrženi tak, aby eliminovali potřebu manuální instalace a aktualizací. To může být užitečné zejména pro velké podniky, jejichž operační systémy se obvykle skládají ze stovek nebo dokonce desítek tisíc odlišných softwarových balíčků.[2]
Funkce
Softwarový balíček je archivní soubor obsahující počítačový program a nezbytná metadata pro jeho nasazení. Počítačový program může být v zdrojový kód to musí být nejprve sestaveno a sestaveno.[3] Metadata balíčku zahrnují popis balíčku, verzi balíčku a závislosti (další balíčky, které je třeba předem nainstalovat).
Správci balíčků jsou pověřeni úkolem najít, nainstalovat, udržovat nebo odinstalovat softwarové balíčky na příkaz uživatele. Mezi typické funkce systému pro správu balíků patří:
- Práce s archivátory souborů extrahovat archivy balíčků
- Zajištění integrity a autenticity balíčku ověřením jejich kontrolní součty a digitální certifikáty, resp
- Vyhledávání, stahování, instalace nebo aktualizace stávajícího softwaru z a softwarové úložiště nebo obchod s aplikacemi
- Seskupování balíčků podle funkcí pro snížení nejasností uživatelů
- Správa závislostí, aby se zajistilo, že je balíček nainstalován se všemi potřebnými balíčky, čímž se zabrání "závislost peklo "
Počítačové systémy, na které se spoléhají dynamická knihovna propojení místo statická knihovna propojení, sdílení spustitelných knihoven strojových instrukcí mezi balíčky a aplikacemi. V těchto systémech vede složité vztahy mezi různými balíčky, které vyžadují různé verze knihoven, k výzvě hovorově známé jako „závislost peklo ". Zapnuto Microsoft Windows systémy, tomu se také říká „DLL peklo „při práci s dynamicky propojenými knihovnami. Dobrá správa balíčků je u těchto systémů zásadní.[4] Rámcový systém z OPENSTEP byl pokus o vyřešení tohoto problému tím, že umožnil instalaci více verzí knihoven současně a aby softwarové balíčky určily, s jakou verzí byly propojeny.
Klientská rozhraní pro lokálně kompilované balíčky
Správci systému může instalovat a udržovat software pomocí jiných nástrojů než softwaru pro správu balíků. Například místní správce může stažení rozbalený zdrojový kód, zkompilovat a nainstalovat. To může způsobit vypadnutí stavu místního systému synchronizace se stavem správce balíčků databáze. Místní správce bude muset přijmout další opatření, například ruční správu některých závislostí nebo integraci změn do správce balíčků.
K dispozici jsou nástroje zajišťující, že jsou lokálně kompilované balíčky integrovány do správy balíků. Pro distribuce založené na .deb a ot./min soubory, stejně jako Slackware Linux, existuje CheckInstall, a pro systémy založené na receptech, jako je Gentoo Linux a hybridní systémy jako např Arch Linux, je možné nejprve napsat recept, který pak zajistí, že se balíček vejde do lokální databáze balíčků.[Citace je zapotřebí ]
Údržba konfigurace
Obzvláště problematické se softwarem upgrady jsou upgrady konfiguračních souborů. Vzhledem k tomu, že správci balíčků, přinejmenším v systémech Unix, vznikli jako rozšíření nástroje pro archivaci souborů, obvykle mohou pouze přepsat nebo uchovat konfigurační soubory, místo aby na ně aplikovali pravidla. Existují výjimky, které se obvykle vztahují na konfiguraci jádra (která, pokud je poškozená, způsobí, že počítač bude po restartu nepoužitelný). Problémy mohou být způsobeny změnou formátu konfiguračních souborů; například pokud starý konfigurační soubor výslovně nezakazuje nové možnosti, které by měly být zakázány. Někteří správci balíků, například Debian je dpkg, povolit konfiguraci během instalace. V jiných situacích je žádoucí nainstalovat balíčky s výchozí konfigurací a poté tuto konfiguraci přepsat například v bezhlavý instalace na velký počet počítačů. Tento druh předkonfigurované instalace podporuje také dpkg.
Úložiště
Aby uživatelé získali větší kontrolu nad druhy softwaru, který umožňují instalovat na svůj systém (a někdy z právních důvodů nebo z důvodů pohodlí na straně distributorů), software se často stahuje z řady softwarová úložiště.[5]
Potlačení upgradu
Když uživatel interaguje se softwarem pro správu balíků za účelem provedení upgradu, je obvyklé představit mu seznam akcí, které mají být provedeny (obvykle seznam balíčků, které mají být upgradovány, a případně uvádět čísla staré a nové verze) , a umožnit uživateli buď hromadně přijmout upgrade, nebo vybrat jednotlivé balíčky pro upgrade. Mnoho správců balíčků může být nakonfigurováno tak, aby nikdy neaktualizovaly určité balíčky nebo je upgradovaly, pouze když jsou v předchozí verzi nalezeny kritické chyby zabezpečení nebo nestability, jak jsou definovány balíčkem softwaru. Tento proces se někdy nazývá připnutí verze.
Například:
- Mňam podporuje to se syntaxí vyloučit = openoffice *[6]
- pacman s IgnorePkg = openoffice[7] (k potlačení upgradu openoffice v obou případech)
- dpkg a dselect toto částečně podpořit prostřednictvím držet příznak ve výběrech balíčků
- APT rozšiřuje držet označit složitým mechanismem „připnutí“[8] (Uživatelé mohou také zakázat balíček[9])
- nadání má příznaky „zadržet“ a „zakázat“
- dopravné podporuje to prostřednictvím konfiguračního souboru package.mask
Odstranění kaskádového balíčku
Některé z pokročilejších funkcí správy balíčků nabízejí „kaskádové odstranění balíčku“,[7] ve kterém jsou také odstraněny všechny balíčky závislé na cílovém balíčku a všechny balíčky, na kterých závisí pouze cílový balíček.
Porovnání příkazů
Přestože jsou příkazy specifické pro každého konkrétního správce balíčků, jsou do značné míry přeložitelné, protože většina správců balíků nabízí podobné funkce.
Akce | zypper[10] | pacman | výstižný | dnf (Mňam ) | dopravné |
---|---|---|---|---|---|
nainstalovat balíček | zypper v PKG | pacman -S BALÍČEK | apt nainstalovat BALÍČEK | dnf nainstalovat BALÍČEK | se objeví BALÍČEK |
odebrat balíček | zypper rm -RU PKG | pacman -R BALÍČEK | vhodně odstranit BALÍČEK | dnf remove --nodeps BALÍČEK | se objeví -C BALÍČEK nebo emerge --unmerge BALÍČEK |
odebrat balíček + sirotky | zypper rm -u - PKG s rozlišením sil | BALÍČEK pacman -Rs | apt autoremove PACKAGE | dnf odebrat BALÍČEK | emerge -c BALÍČEK nebo emerge --depclean BALÍČEK |
aktualizovat databázi softwaru | zypper ref | pacman - Sy | apt aktualizace | dnf kontrolní aktualizace | objevit --sync |
zobrazit aktualizovatelné balíčky | zypper lu | pacman -Qu | seznam apt - lze upgradovat | dnf kontrolní aktualizace | emerge -avtuDN --with-bdeps = y @ svět nebo emerge --update --pretend @world |
smazat sirotky + konfigurace | zypper rm -u | pacman -Rsn $ (pacman -Qdtq) | apt autoremove | dnf vymazat PKG | emerge --depclean |
ukázat sirotky | zypper pa - orphaned - unneeded | pacman -Qdt | package-cleanup --quiet --leaves --exclude-bin | objevit -caD nebo objevit --depclean --pretend | |
aktualizovat vše | zypper nahoru | pacman - Syu | apt upgrade | dnf aktualizace | emerge --update --deep --with-bdeps = y @ svět |
The Arch Linux Wiki Pacman / Rosetta nabízí rozsáhlý přehled.[11]
Prevalence
Správci balíčků mají rádi dpkg existují již v roce 1994.[12]
Linuxové distribuce orientované na binární balíčky se do značné míry spoléhají na systémy správy balíčků jako jejich primární prostředek správy a údržby softwaru. Mobilní operační systémy jako např Android (Založené na Linuxu), iOS (Unixový ), a Windows Phone spoléhají téměř výlučně na příslušné dodavatele obchody s aplikacemi a tak využívají své vlastní specializované systémy správy balíčků.
Synaptický, GUI pro mnoho správců balíčků Linux
Apper, a Qt GUI pro PackageKit
Software GNOME, a GTK + GUI pro PackageKit
Octopi, a Qt GUI pro správce balíčků Pacman
Pamac, a GTK + GUI pro správce balíčků Pacman
křídlo
, Správce balíčků Windows CLI nástroj pro Windows 10
Srovnání s instalátory
Správci balíčků se často říká „správce instalací“, což může vést ke zmatku mezi správci balíků a instalátory. Rozdíly zahrnují:
Kritérium | Správce balíčků | Instalátor |
---|---|---|
Dodáno s | Obvykle operační systém | Každý počítačový program |
Umístění informací o instalaci | Jedna centrální instalační databáze | Je to zcela na uvážení instalátora. Může to být soubor ve složce aplikace nebo mezi soubory a složkami operačního systému. V nejlepším případě se mohou zaregistrovat do seznamu odinstalačních programů, aniž by odhalili informace o instalaci. |
Rozsah údržby | Potenciálně všechny balíčky v systému | Pouze produkt, se kterým byl dodán |
Vyvinul | Jeden prodejce správce balíčků | Několik prodejců instalačních programů |
Formát balení | Několik známých formátů | Mohlo by existovat tolik formátů jako počet aplikací |
Kompatibilita formátu balíčku | Lze konzumovat, pokud to správce balíčků podporuje. Buď novější verze správce balíčků jej nadále podporují, nebo uživatel správce balíčků neaktualizuje. | Instalační program je s ním vždy kompatibilní formát archivu, pokud nějaké používá. Instalační programy, stejně jako všechny počítačové programy, však mohou být ovlivněny hniloba softwaru. |
Porovnání s nástrojem pro automatizaci sestavení
Většina správa konfigurace softwaru systémy považují stavební software a nasazovací software za samostatné nezávislé kroky stavět automatizaci obslužný program je obvykle čitelný člověkem zdrojový kód soubory, které již jsou v počítači, a automatizuje proces jejich převodu na binární spustitelný balíček na stejném počítači. Později správce balíčků běžně běžící na jiném počítači stáhne tyto předem vytvořené binární spustitelné balíčky přes internet a nainstaluje je.
Oba druhy nástrojů však mají mnoho společných rysů:
- Například graf závislosti topologické třídění použitý ve správci balíčků ke zpracování závislostí mezi binárními komponentami se také používá ve správci sestav ke zpracování závislosti mezi zdrojovými komponentami.
- Například mnoho makefiles podporuje nejen vytváření spustitelných souborů, ale také jejich instalaci pomocí
provést instalaci
. - Například každý správce balíčků pro a zdrojová distribuce – Dopravné, Čarodějnictví, Homebrew atd. - podporuje převod lidsky čitelného zdrojového kódu na binární spustitelné soubory a jeho instalaci.
Několik nástrojů, jako např Maak a A-A-P, jsou navrženy tak, aby zvládly vytváření i nasazení a lze je použít buď jako nástroj pro automatizaci sestavení, nebo jako správce balíčků nebo obojí.[13]
Běžní správci balíčků a formáty
Univerzální správce balíčků
Také známý jako správce binárního úložiště, je to softwarový nástroj určený k optimalizaci stahování a ukládání binárních souborů, artefaktů a balíčků používaných a produkovaných v proces vývoje softwaru.[14] Cílem těchto správců balíčků je standardizovat způsob, jakým podniky zacházejí se všemi typy balíků. Dávají uživatelům možnost aplikovat metriky zabezpečení a dodržování předpisů na všechny typy artefaktů. O univerzálních správcích balíčků se říká, že jsou ve středu a Řetězec nástrojů DevOps.[15]
Formáty balení
Každý správce balíčků se spoléhá na formát a metadata balíčků, které může spravovat. To znamená, že správci balíků potřebují skupiny souborů, které mají být seskupeny pro konkrétního správce balíčků, spolu s příslušnými metadaty, například závislostmi. Základní instalace z těchto balíků spravuje základní sada obslužných programů a více správců balíků používá tyto obslužné programy k zajištění dalších funkcí.
Například, Mňam spoléhá na ot / min jako backend. Yum rozšiřuje funkčnost backendu přidáním funkcí, jako je jednoduchá konfigurace pro údržbu sítě systémů. Dalším příkladem je Synaptický správce balíčků poskytuje grafické uživatelské rozhraní pomocí Advanced Packaging Tool (apt) knihovna, na kterou se spoléhá dpkg pro základní funkčnost.
Mimozemšťan je program, který převádí mezi různými Formáty balíčků Linux, podporující převod mezi Linux Standard Base (LSB) kompatibilní ot./min balíčky, .deb, Stampede (.slp), Solaris (.pkg) a Slackware (.tgz, .txz, .tbz, .tlz) balíčky.
V mobilních operačních systémech Google Play spotřebovává Balíček aplikace pro Android (APK) ve formátu balíčku Windows Store používá APPX a XAP formáty. (Google Play i Windows Store mají stejnojmenné správce balíčků.)
Zdarma a open source softwarové systémy
Podle povahy bezplatný open source software, balíčky s podobnými a kompatibilními licencemi jsou k dispozici pro použití v řadě operačních systémů. Tyto balíčky lze kombinovat a distribuovat pomocí konfigurovatelných a interně složitých systémů balení, které umožňují zpracovat mnoho permutací softwaru a spravovat závislosti a konflikty specifické pro jednotlivé verze. Některé obalové systémy bezplatného a otevřeného softwaru jsou také samy vydány jako bezplatný a otevřený software. Typickým rozdílem mezi správou balíků v proprietárních operačních systémech, jako jsou Mac OS X a Windows, a ve svobodném a otevřeném softwaru, jako je Linux, je to, že bezplatné a otevřené softwarové systémy umožňují také instalaci balíčků třetích stran a upgradováno prostřednictvím stejného mechanismu, zatímco správci balíčků systémů Mac OS X a Windows upgradují pouze software poskytovaný společnostmi Apple a Microsoft (s výjimkou některých ovladačů třetích stran v systému Windows). Schopnost průběžně upgradovat software třetích stran se obvykle přidává přidáním URL příslušného úložiště do konfiguračního souboru správy balíčků.
Správci balíků na úrovni aplikace
Kromě správců aplikací na systémové úrovni existují i někteří správci doplňkových balíků pro operační systémy s omezenými schopnostmi a pro programovací jazyky ve kterém vývojáři potřebují nejnovější knihovny.
Na rozdíl od správců balíků na úrovni systému se správci balíků na úrovni aplikace zaměřují na malou část softwarového systému. Obvykle jsou umístěny ve stromě adresářů, který není udržován správcem balíků na úrovni systému, například c: cygwin nebo / usr / local / fink. To však nemusí platit pro správce balíčků, kteří se zabývají programovacími knihovnami, což vede k možnému konfliktu, protože oba správci balíčků mohou tvrdit, že „vlastní“ soubor a mohou poškodit upgrady.
Dopad
Ian Murdock uvedl, že správa balíčků je „největším pokrokem Linux přinesl do odvětví ", že stírá hranice mezi operačním systémem a aplikacemi a že usnadňuje" snazší prosazování nových inovací [...] na trh a [...] vývoj OS ".[16]
Viz také
- AppStream
- Flatpak
- Instalace (počítačové programy)
- InstallShield
- Seznam systémů pro správu softwarových balíků
- Formát balení
- Snap (správce balíčků)
- Instalační služba systému Windows
Reference
- ^ „Co je správce balíčků?“. Archivovány od originál dne 17. října 2017. Citováno 19. prosince 2018.
- ^ „Distribuce softwaru“. Dell KACE. Archivovány od originál dne 3. října 2015. Citováno 11. července 2012.
- ^ Ludovic Courtès, Funkční správa balíčků s Guix, Červen 2013, Madrid, European Lisp Symposium 2013
- ^ „Schémata klasifikace Linuxového úložiště“. braintickle.blogspot.com. Citováno 1. března 2008.
- ^ „CentOS yum pinning rpms“. centos.org. Archivovány od originálu dne 2. listopadu 2007. Citováno 1. března 2008.CS1 maint: unfit url (odkaz)
- ^ A b „pacman (8) manuální stránka“. archlinux.org. Citováno 1. března 2008.
- ^ "Jak zachovat nainstalované konkrétní verze balíčků (složité)". debian.org. Citováno 1. března 2008.
- ^ „Apt pinning to blacklist a package“. Archivovány od originál dne 22. července 2011. Citováno 19. srpna 2010.
- ^ „dokumentace / sles11“. en.opensuse.org.
- ^ „Pacman / Rosetta - ArchWiki“. wiki.archlinux.org. Citováno 17. září 2017.
- ^ „zdrojový kód dpkg verze 0.93.15“. Archivovány od originál dne 2. dubna 2015. Citováno 19. prosince 2018.
- ^ Eelco Dolstra, „Integrace konstrukce softwaru a nasazení softwaru“.
- ^ Waters, John K. (8. září 2015). „JFrog uvádí„ univerzální “úložiště artefaktů“. ADT Mag. Časopis Trendy vývoje aplikací.
- ^ Decoster, Xavier (18. srpna 2013). „Přehled ekosystému NuGet“. CodeProject.com.
- ^ „Jak správa balíčků všechno změnila“. ianmurdock.com. Archivovány od originál dne 23. února 2009. Citováno 1. března 2008.
externí odkazy
- Cheat sheet správy balíčků (Distrowatch)
- ArchLinux Rosetta Stone - Porovnání příkazového řádku pro správce balíčků
- upkg univerzální správce balíčků wrapper, který poskytuje stejnou syntaxi pro všechny verze Linuxu