Softwarový repozitář

Softwarový repozitář je v informatice označení pro místo, odkud mohou být staženy a nainstalovány softwarové balíčky.

Charakteristika

Označení repozitář se často používá v souvislosti s balíčkovacími systémy unixových distribucí (linuxová distribuce, BSD varianty), kde je repozitář nejčastěji server (může to ale také být lokální adresář nebo vyměnitelný disk), na kterém jsou fyzicky umístěny softwarové balíčky připravené pro instalaci do systému.

Těchto repozitářů existuje většinou více podle účelu, pro který jsou určeny (stabilní software, software k testovaní …).

Software z připravených repozitářů se dá pohodlně instalovat pomocí správců balíčků, které nalezneme v linuxových distribucích. Jediné, co je třeba nastavit, jsou adresy (cesty) k repozitářům a aktualizovat databázi dostupných balíčků, které se ve zvolených repozitářích nacházejí.

Vznik repozitářů

Vydavatelé softwarů spravují servery na internetu právě z důvodů poskytnutí softwarových repozitářů a to jak zdarma, tak za předplatné. Repozitáře mohou obsahovat celý operační systém nebo verze jednotlivých programů, jako je to u CPAN (Comprehensive Perl Archive Network), který obsahuje moduly napsané programovacím jazykem Perl. Ve většině případů správci těchto repozitářů poskytují balíčkovací systém, nástroj sloužící pro vyhledávání, instalaci a další manipulaci se softwarovými balíčky stažené z repozitářů. V linuxových distribucích lze narazit na Advanced Packaging Tool (APT) používaný v Debianu a Ubuntu, nebo například Yum, který naleznete v distribucích založených na Red Hat Linuxu. Je spoustu dalších nezávislých balíčkovacích systémů, jako například pacman v Arch Linuxu nebo equo v Sabayon Linuxu.

Repozitáře by měly dle návrhu být bez malwaru. V případě, že operační systém je nakonfigurován tak, že lze používat pouze digitálně podepsané repozitáře od ověřeného vydavatele a současně používá vhodně systémové a souborové oprávnění, tak výrazně redukuje možnost, že se v tomto systému objeví malware. To je jeden z důvodů, proč tyto systémy nevyžadují antimalwarový software.

Většina hlavních Linuxových distribucí mají nespočet repozitářů po celém světě.

Tabulka dole znázorňuje příklady procesů vývoje softwarových balíčků.

Výběr repozitářů a testování

Následující tabulka zobrazuje programovací jazyky. Repozitáře, které obsahují moduly napsané v daném programovacím jazyku a také programy, používané pro správu repozitáře. Sloupec „automatická kontrola“ popisuje jak se provádí automatické kontrolování softwaru.

Jen málo vývojářů má možnost testovat jejich software pod několika operačními systémy s různými verzemi jádra a dalšími přidanými balíky. Pro jazyk R, CRAN (Comprehensive R Archive Network) testují takto běžně. Abychom zjistili, jak testování probíhá, předpokládejme, že Sally přispívá do balíčku A. Pouze u Sally je spuštěna aktuální verze vyvíjeného softwaru pod danou verzí Microsoft Windows a bylo to testováno zatím pouze v tomto prostředí. CRAN v pravidelných intervalech testuje Sallyn upravený balíček v několika kombinacích operačních systémů s různými jádry jazyka R. Pokud jeden z nich vrátí chybu, Sally bude předána chybová zpráva. S trochou štěstí tato zpráva jí pomůže opravit tuto chybu. V dalším příkladě předpokládejme Johna, který přispívá do balíčku B, který používá balíček A z předešlého příkladu. Balíček B projde všemi testy a tím se stane dostupný pro uživatele, Následně Sally vydá vylepšenou verzi balíčku A, která naneštěstí nefunguje s balíčkem B. Automatická kontrola poskytne tuto informaci Johnovi, který následně opraví problém.

Tento příklad ukazuje jak sílu tak i slabost balíčkovacích systémů. CRAN poskytuje tento způsob testování balíčku, ale nepožaduje po vývojářích specifikaci, které verze ostatních balíčků využívají. Procedury pro požadování specifických verzí balíků existují, ale vývojáři nemusí tyto procedury používat.

Pokud Sally (z předešlého příkladu) dostane chybovou zprávu a si myslí, že chyba je ve zdrojových kódech jazyka, může požádat o opravu vývojový tým jazyka. V tomto případě i repozitář může sloužit k vylepšení kvality jádra programovacího jazyka.

JazykSpráva softwarových balíčkůRepozitářJak nainstalovatPlatforma pro týmový vývojAutomatická kontrola
C++Boost
HaskellCABALHackage[1]
JavaMaven[2]
.NETNuGetNuGet[3]
Node.jsNPM[4]
PerlCPAN[5]
PHPPEARPECL
PythonPyPIPython Package Manager
RCRANinstall.packagesR-ForgeSkoro týdně na 12 platformách nebo kombinacích rozdílných verzí R (devel, prerel, patched, release) s až sedmi různými operačními systémy (různé verze Linuxu, Windows a Mac).
BioconductorBiocLite.R
RubyRubyGemsRuby Application ArchiveRubyForge
TeX, LaTeXCTAN

Části této tabulky byly zkopírovány z odpovědi na otázku na StackOverflow.com.[1]

Související články

Externí odkazy

Reference

V tomto článku byl použit překlad textu z článku Software repository na anglické Wikipedii.