Úložiště softwaru - Software repository - Wikipedia
![]() | Tento článek má několik problémů. Prosím pomozte vylepši to nebo diskutovat o těchto otázkách na internetu diskusní stránka. (Zjistěte, jak a kdy tyto zprávy ze šablony odebrat) (Zjistěte, jak a kdy odstranit tuto zprávu šablony)
|
A softwarové úložiště, nebo zkráceně „repo“, je úložiště pro softwarové balíčky. Často se ukládá obsah i metadata. Balíčky skupin úložišť. Někdy je seskupení pro programovací jazyk, například CPAN pro Perl programovací jazyk, někdy i celý operační systém, někdy je kritériem licence obsahu. V podnikovém prostředí se softwarové úložiště obvykle používá k ukládání artefaktů nebo k zrcadlení externích úložišť, která mohou být kvůli omezením zabezpečení nepřístupná. Taková úložiště mohou poskytovat další funkce, jako je kontrola přístupu, správa verzí, bezpečnostní kontroly nahraného softwaru, funkce klastru atd. M a obvykle podporují různé formáty v jednom balíčku, aby vyhovovaly všem potřebám v podniku, a tím se zaměřily poskytnout jediný bod pravdy. Populární příklady jsou Artifactory a Nexus.
Na straně klienta pomáhá správce balíčků s instalací a aktualizací úložišť.
Na straně serveru je softwarové úložiště obvykle spravováno řízením zdrojů nebo správci úložiště. Někteří správci úložiště umožňují agregovat další umístění úložiště do jedné adresy URL a poskytnout proxy pro ukládání do mezipaměti. Když provádíte kontinuální sestavení, je vyrobeno mnoho artefaktů, které jsou často centrálně uloženy, takže je důležité automatické mazání těch, které nejsou uvolněny.
Přehled
Mnoho vydavatelů softwaru a dalších organizací udržuje servery na serveru Internet za tímto účelem buď zdarma, nebo za poplatek za předplatné. Úložiště mohou být pouze pro konkrétní programy, jako např CPAN pro Perl programovací jazyk nebo pro celý operační systém. Provozovatelé takových úložišť obvykle poskytují a systém správy balíků, nástroje určené k vyhledávání, instalaci a jiné manipulaci se softwarovými balíčky z úložišť. Například mnoho Linuxové distribuce použití Pokročilý nástroj pro balení (APT), běžně se vyskytující v Debian založené distribuce, nebo Mňam nalezen v červená čepice založené distribuce. Existuje také několik nezávislých systémů pro správu balíků, například pacman Arch Linux a equo, nalezené v Sabayon Linux.
Jelikož jsou softwarová úložiště navržena tak, aby obsahovala užitečné balíčky, jsou navržena hlavní úložiště malware volný, uvolnit. Pokud je počítač nakonfigurován pro použití a digitálně podepsáno úložiště od renomovaného prodejce a je spojeno s příslušným systém oprávnění, což významně snižuje hrozbu malwaru pro tyto systémy. Jako vedlejší efekt mnoho systémů, které mají tyto funkce, nevyžaduje anti-malware software, jako je antivirový software.[1]
Největší major Linuxové distribuce mít mnoho úložišť po celém světě, která zrcadlí hlavní úložiště.
Systém správy balíků vs. proces vývoje balíčku
A systém správy balíků se liší od a proces vývoje balíčku.
Typickým použitím systému správy balíčků je usnadnění integrace kódu z případně různých zdrojů do koherentní samostatné operační jednotky. Systém pro správu balíků by tedy mohl být použit k výrobě distribuce Linuxu, případně distribuce přizpůsobená konkrétní omezené aplikaci.
Proces vývoje balíčku se naproti tomu používá ke správě společného vývoje kódu a dokumentace kolekce funkcí nebo rutin se společným tématem, čímž se vytvoří balíček softwarových funkcí, které samy o sobě obvykle nebudou úplné a použitelné. Dobrý proces vývoje balíčku pomůže uživatelům vyhovět správné dokumentaci a kódovacím postupům a integrovat určitou úroveň testování jednotky. V tabulce níže jsou uvedeny příklady procesů vývoje balíčku.
Vybraná úložiště
V následující tabulce je uvedeno několik jazyků s úložišti pro přispěný software. Sloupec „Automatické kontroly“ popisuje provedené rutinní kontroly.
Velmi málo lidí má schopnost testovat svůj software pod více operačními systémy s různými verzemi základního kódu a s dalšími přispěnými balíčky, které mohou používat. Pro R, Komplexní síť R Archive (CRAN) rutinně provádí testy. Chcete-li zjistit, jak je to cenné, předpokládejme, že Sally přispěje balíčkem A. Sally spouští aktuální verzi softwaru pouze pod jednou verzí systému Microsoft Windows a testuje ji pouze v tomto prostředí. Ve víceméně pravidelných intervalech testuje CRAN příspěvek Sally pod tuctem kombinací operačních systémů a verzí základního softwaru v jazyce R. Pokud jedna z nich vygeneruje chybu, dostane tuto chybovou zprávu. S trochou štěstí může tato chybová zpráva stačit, aby mohla chybu opravit, i když ji nemůže replikovat pomocí hardwaru a softwaru, který má. Dále předpokládejme, že John přispívá do úložiště balíčkem B, který používá balíček A. Balíček B předá všechny testy a je zpřístupněn uživatelům. Později Sally předloží vylepšenou verzi A, která bohužel přeruší B. Automatické kontroly umožňují poskytnout informace Johnovi, aby mohl problém vyřešit.
Tento příklad odhaluje sílu i slabost v systému přispívajících balíčků R. CRAN podporuje tento druh automatizované testování přispěných balíčků, ale balíčky přispívající do CRAN nemusí specifikovat verze jiných přispěných balíčků, které používají. Existují postupy pro vyžádání konkrétních verzí balíčků, ale přispěvatelé nemusí tyto postupy používat.
Kromě toho úložiště typu CRAN, které spouští pravidelné kontroly přispěných balíčků, ve skutečnosti poskytuje rozsáhlé if ad hoc testovací sada pro vývojové verze základního jazyka. Pokud Sally (v příkladu výše) dostane chybovou zprávu, které nerozumí nebo si myslí, že je nevhodná, zejména z vývojové verze jazyka, může (a často to dělá s R) požádat o pomoc základní vývojový tým pro jazyk . Tímto způsobem může úložiště přispět ke zlepšení kvality softwaru základního jazyka.
Jazyk / účel | Proces vývoje balíčku | Úložiště | Instalovat metody | Platforma pro společný vývoj | Automatické kontroly |
---|---|---|---|---|---|
Haskell | Společná architektura pro vytváření aplikací a knihoven[2] | Hackování | |||
Jáva | Maven[3] | ||||
Julie[4] | |||||
Společný Lisp | Quicklisp[5] | ||||
.SÍŤ | NuGet | NuGet[6] | |||
Node.js | npm[7] | ||||
Perl | CPAN | PPM[8] | |||
PHP | HRUŠKA, Hudební skladatel | PECL, Balírna | |||
Krajta | Instalační nástroje | PyPI | pip, EasyInstall, PyPM, Anakonda | ||
R | Proces kontroly R CMD[9][10] | CRAN[11] | install.packages[12] dálkové ovladače[13] | GitHub[14] | Často na 12 platformách nebo kombinacích různých verzí R (devel, prerel, patched, release) na různých operačních systémech (různé verze Linux, Windows, macOS a Solaris). |
Rubín | RubyGems | Archiv aplikací Ruby | RubyForge | ||
Rez | Náklad[15] | Přepravky[16] | Náklad[15] | ||
TeX, Latex | CTAN |
(Části této tabulky byly zkopírovány ze „Seznamu nejlepších úložišť podle programovacího jazyka“ dne Přetečení zásobníku[17])
Mnoho dalších programovacích jazyků, mezi nimi C, C ++, a Fortran, nemáte centrální softwarové úložiště s univerzálním rozsahem. Pozoruhodná úložiště s omezeným rozsahem zahrnují:
- Netlib, hlavně matematické rutiny pro Fortran a C, historicky jeden z prvních otevřených softwarových úložišť;
- Zvýšit, přísně vybraná sbírka vysoce kvalitních knihoven pro C ++; nějaký kód vyvinutý v Boostu se později stal součástí standardní knihovny C ++.
Správci balíčků
Správci balíčků pomáhat spravovat úložiště a jejich distribuci. Pokud je úložiště aktualizováno, správce balíčků uživateli obvykle umožní aktualizaci tohoto úložiště prostřednictvím správce balíčků. Pomáhají také se správou věcí, jako jsou závislosti mezi jinými softwarovými úložišti. Mezi příklady správců balíčků patří:
Správce balíčků | Popis |
---|---|
npm | Správce balíků pro Node.js[18] |
pip | Instalační balíček pro Python[19] |
APT | Pro správu balíčků Debian[20] |
Homebrew | Instalační balíček pro MacOS, který vám umožňuje instalovat balíčky, které Apple ne[21] |
vcpkg | Správce balíčků pro C a C ++[22][23] |
Správci úložišť
Vztah k nepřetržité integraci
Jako součást životního cyklu vývoje je zdrojový kód neustále zabudován do binárních artefaktů pomocí kontinuální integrace. To může interagovat s manažerem binárního úložiště podobně jako vývojář, když získává artefakty z úložišť a tlačí tam sestavení. Těsná integrace se servery CI umožňuje ukládání důležitých metadat, jako jsou:
- Který uživatel spustil sestavení (ať už ručně nebo spácháním kontroly revizí)
- Které moduly byly postaveny
- Které zdroje byly použity (ID potvrzení, revize, větev)
- Použité závislosti
- Proměnné prostředí
- Instalované balíčky
Artefakty a balíčky
Artefakty a balíčky ve své podstatě znamenají různé věci. Artefakty jsou jednoduše výstupem nebo kolekcí souborů (např. JAR, WAR, DLLS, RPM atd.) A jeden z těchto souborů může obsahovat metadata (např. Soubor POM). Zatímco balíčky jsou jeden archivní soubor v dobře definovaném formátu (např. NuGet ), které obsahují soubory vhodné pro daný typ balíčku (např. DLL, PDB).[24] Mnoho artefaktů je výsledkem sestavení, ale zásadní jsou i jiné typy. Balíčky jsou v zásadě jedna ze dvou věcí: knihovna nebo aplikace.[25]
Ve srovnání se zdrojovými soubory jsou binární artefakty často řádově větší, jsou zřídka odstraněny nebo přepsány (s výjimkou vzácných případů, jako jsou snímky nebo noční sestavy) a jsou obvykle doprovázeny mnoha metadaty, jako je id, název balíčku, verze , licence a další.
Metadata
Metadata popisuje binární artefakt, je uložen a specifikován odděleně od samotného artefaktu a může mít několik dalších použití. V následující tabulce jsou uvedeny některé běžné typy metadat a jejich použití:
Typ metadat | Používá |
---|---|
Dostupné verze | Aktualizace a downgrading automaticky |
Závislosti | Určete další artefakty, na kterých aktuální artefakt závisí |
Následné závislosti | Určete další artefakty, které závisí na aktuálním artefaktu |
Licence | Soulad s právními předpisy |
Vytvořte datum a čas | Sledovatelnost |
Dokumentace | Poskytněte offline dostupnost kontextové dokumentace v IDE |
Informace o schválení | Sledovatelnost |
Metriky | Pokrytí kódu, dodržování pravidel, výsledky testů |
Uživatelem vytvořená metadata | Vlastní sestavy a procesy |
Místní produkty poskytující správu úložiště
Software pro správu úložišť (správci úložišť) zahrnuje:
- Apache Archiva - „software pro správu úložiště [pro] vytváření úložiště artefaktů“[26]
- Inedo je ProGet - "Universal Package Manager. Prvotřídní funkce. Přístupné pro každého."[27]
- JFrog's Artifactory[28][29]
- Package Drone - „úložiště správce balíčků pro OSGi“[30]
- Sonatype's Nexus -: pracuje mimo jiné s nástroji pro vytváření jako Ant, Ivy, Gradle, Maven, SBT.[31]
- Pulp - „bezplatná a otevřená zdrojová platforma pro správu úložišť softwarových balíků a jejich zpřístupnění velkému počtu spotřebitelů. Podporované typy: RPM, Python, Puppet, Docker a OSTree.“[32]
Software jako servisní produkt poskytující softwarová úložiště
- Azure Artefakty[33]
- CloudRepo - "Plně spravovaná, cloudová, soukromá a veřejná úložiště."[34]
- Cloudsmith - „Nový standard v oblasti správy balíčků a distribuce softwaru.“[35]
- Dist - "Spolehlivé, zabezpečené, soukromé a rychlé registry kontejnerů Docker a úložiště Maven hostované v cloudu."[36]
- feedz.io - "Hostování a distribuce balíčků"[37]
- Registr balíčků GitHub[38]
- MyGet - „služba nepřetržitého doručování hostující 1000 úložišť balíčků NuGet, Bower a NPM“[39]
- Packagecloud - „Jednotné vývojářské rozhraní pro všechny vaše artefakty.“[40]
Viz také
Reference
- ^ itmWEB: Řešení počítačových virů Archivováno 14. Října 2007 v Wayback Machine
- ^ "The Haskell Cabal | Přehled". www.haskell.org. Citováno 2019-03-25.
- ^ „Maven - Vítejte v Apache Maven“. maven.apache.org. Citováno 2019-03-25.
- ^ "Výpis balíčků Julia". pkg.julialang.org. Citováno 2019-03-25.
- ^ „Quicklisp beta“. www.quicklisp.org. Citováno 2019-03-25.
- ^ karann-msft. „Reference uživatelského rozhraní správce balíčků NuGet“. docs.microsoft.com. Citováno 2019-03-25.
- ^ „npm“. www.npmjs.com. Citováno 2019-03-25.
- ^ „Instalace modulů Perl - www.cpan.org“. www.cpan.org. Citováno 2019-03-25.
- ^ Leisch, Friedrich. „Vytváření balíčků R: výuka“ (PDF).
- ^ Graves, Spencer B .; Dorai-Raj, Sundar. „Vytváření balíčků R, používání úložišť CRAN, R-Forge a lokálních archivačních sítí R a Subversion (SVN)“ (PDF).
- ^ „Komplexní síť R Archive“. cran.r-project.org. Citováno 2019-03-25.
- ^ "R instalace a správa". cran.r-project.org. Citováno 2019-03-25.
- ^ Wickham, Hadley; Bryan, Jenny. "Struktura a stav balíčku". Balíčky R.. O'Reilly.
- ^ Decan, Alexandre; Pánské, Tom; Claes, Maelick; Grosjean, Philippe (2015). „O vývoji a distribuci balíků R: empirická analýza ekosystému R“. Sborník příspěvků z Evropské konference o seminářích softwarové architektury 2015 - ECSAW '15: 1–6. doi:10.1145/2797433.2797476.
- ^ A b „Nákladová kniha“. Dokumentace. Rust Programovací jazyk. Citováno 2019-08-26.
- ^ "Rust Package Registry". bedny.io. Citováno 2019-08-26.
- ^ „Seznam nejlepších úložišť podle programovacího jazyka“. Přetečení zásobníku. Citováno 2010-04-14.
- ^ „npm About“. www.npmjs.com. Citováno 2019-11-21.
- ^ vývojáři, The pip, pip: Nástroj doporučovaný PyPA pro instalaci balíčků Pythonu., vyvoláno 2019-11-21
- ^ "Apt - Debian Wiki". wiki.debian.org. Citováno 2019-11-22.
- ^ „Homebrew“. Homebrew. Citováno 2019-11-22.
- ^ „Yelp uvádí na trh Yelp Fusion, Microsoft vytváří nástroj Vcpkg a novou sadu Touch Sense SDK pro vývojáře Androidu“. SD Times. 20. září 2016.
- ^ „Správce knihoven C ++ společnosti Microsoft je nyní k dispozici pro systémy Linux a macOS“. SD Times. 25. dubna 2018.
- ^ „Schémata klasifikace Linuxového úložiště“. braintickle.blogspot.com. Citováno 2008-03-01.
- ^ "Apache Archiva: Správce úložiště artefaktů". Softwarová nadace Apache. Citováno 2013-04-17.
Apache Archiva [...] je rozšiřitelný software pro správu úložiště, který pomáhá při péči o vaše vlastní osobní nebo celopodnikové úložiště artefaktů.
- ^ „ProGet“. Inedo. Citováno 2016-02-11.
Konzistence, kontinuita, dodržování předpisů - vše v jednom centralizovaném univerzálním správci balíků s ProGet.
- ^ „Jfrog Artifactory“. Wikieduonline.
JFrog Artifactory je software pro správu binárního úložiště určený k ukládání binárního výstupu procesu sestavení pro použití v distribuci a nasazení
- ^ „Umělecké. Spravujte své binární soubory“. JFrog. Citováno 2014-10-20.
Jako první řešení pro správu binárního úložiště změnila společnost Artifactory způsob, jakým jsou binární soubory řízeny, ukládány a spravovány během celého cyklu vydání softwaru.
- ^ "Package Drone". Citováno 2015-01-23.
Myšlenkou je mít pracovní postup Tycho Compile -> publikovat do repo -> Tycho Compile (pomocí nasazených artefaktů). A některé nástroje úložiště, jako je vyčištění, zmrazení, ověření.
- ^ „Správce úložiště Nexus“. Sonatype. Citováno 2014-05-21.
Nexus Pro vám poskytne více informací, větší kontrolu a lepší spolupráci v celém týmu než kdykoli předtím. A funguje s nástroji pro vytváření, jako jsou Ant, Ivy, Gradle, Maven, SBT a další. Použijte Nexus jako základ pro váš kompletní přístup k řízení životního cyklu komponent.
- ^ "Pulp | správa softwarového úložiště". pulpproject.org. Citováno 2017-07-11.
- ^ „Azure Artifacts“.
Azure Artefakty
- ^ „CloudRepo“. CloudRepo. Citováno 2017-01-01.
CloudRepo je správce cloudového archivu nativních artefaktů, který nabízí veřejná i soukromá úložiště. CloudRepo umožňuje vysoce výkonným týmům vývoje softwaru bezpečně ukládat a sdílet artefakty pro použití v jiných procesech sestavení a vývoje.
- ^ „Cloudsmith“. Cloudsmith. Citováno 2020-05-20.
Cloudsmith je upřednostňovaná softwarová platforma pro bezpečné ukládání a sdílení balíků a kontejnerů. Distribuovali jsme miliony balíčků pro inovativní společnosti po celém světě.
- ^ „Dist“. Dist. Citováno 2020-03-04.
Vyvíjejte a nasazujte s jistotou. Vaše artefakty jsou důležitou součástí vašich vývojových a nasazovacích kanálů. Dist je navržen tak, aby byl vysoce dostupný, aby vyhovoval vašim produkčním potřebám, a rychlý, aby vaši vývojáři byli šťastní a produktivní.
- ^ „Hostování a distribuce balíčků“. feedz.io. Citováno 2020-02-10.
Ukládejte a distribuujte své soukromé balíčky NuGet a NPM bez omezení uživatele a transparentní ceny
- ^ https://github.blog/2019-05-10-introducing-github-package-registry/
- ^ „MyGet: Hostované NuGet, NPM, Bower a Vsix“. MyGet. Citováno 2013-03-13.
MyGet hostí tisíce úložišť NuGet, Bower a NPM používaných společnostmi a jednotlivými vývojáři po celém světě. MyGet je dodáván s integrovanou službou Build Services a také poskytuje integraci bez tření s GitHub, BitBucket a Visual Studio Online.
- ^ Canals, Armando (2018-06-25). „Kontinuální vydávání balíků, část I: úvod do správy balíků v CI / CD“. circleci.com.
[packagecloud] hostuje soukromá a veřejná úložiště balíčků pro mnoho různých typů balíčků a funguje bez problémů s různými správci balíků.