brew creator vyvíjí nového správce balíčků čaje

Max Howell, autor oblíbeného systému pro správu balíčků macOS brew (Homebrew), vyvíjí nového správce balíčků s názvem Tea, který je pokračováním vývoje brew, přesahuje rámec správce balíčků a nabízí jednotnou infrastrukturu pro správu balíčků, která funguje. s decentralizovanými repozitáři. Projekt je zpočátku vyvíjen jako multiplatformní (v současnosti jsou podporovány macOS a Linux, podpora Windows je ve vývoji). Kód projektu je napsán v TypeScript a distribuován pod licencí Apache 2.0 (brew byl napsán v Ruby a distribuován pod licencí BSD).

Tea není koncepčně jako tradiční správci balíčků a místo paradigmatu „chci nainstalovat balíček“ používá paradigma „chci použít balíček“. Konkrétně Tea nemá příkaz k instalaci balíčku jako takového, ale místo toho používá generování prostředí ke spuštění obsahu balíčku, který se nepřekrývá se současným systémem. Balíčky jsou umístěny v samostatném adresáři ~/.tea a nejsou vázány na absolutní cesty (lze je přesouvat).

K dispozici jsou dva hlavní režimy provozu: přechod do příkazového shellu s přístupem do prostředí s nainstalovanými balíčky a přímé volání příkazů souvisejících s balíčky. Například při spuštění "tea +gnu.org/wget" si správce balíčků stáhne obslužný program wget a všechny potřebné závislosti a poté poskytne shellový přístup v prostředí, ve kterém je nainstalovaný obslužný program wget dostupný. Druhá možnost zahrnuje přímé spuštění – „tea +gnu.org/wget wget https://some_webpage“, ve kterém bude nástroj wget nainstalován a okamžitě spuštěn v samostatném prostředí. Je možné skládat složité řetězce, například si stáhnout soubor white-paper.pdf a zpracovat ho pomocí utility glow, lze použít následující konstrukci (pokud chybí wget a glow, nainstalují se): čaj + gnu.org/wget wget -qO- https:/ /tea.xyz/white-paper.pdf | tea +charm.sh/glow glow - nebo můžete použít jednodušší syntaxi: tea -X wget -qO- tea.xyz/white-paper | čaj -X záře -

Podobným způsobem můžete přímo spouštět skripty, příklady kódu a jednolinky, které automaticky načítají nástroje nezbytné pro jejich provoz. Například spuštěním „tea https://gist.githubusercontent.com/i0bj/…/raw/colors.go -yellow“ se nainstaluje sada nástrojů Go a spustí se skript colors.go s argumentem „-yellow“.

Aby se příkaz čaj nevolal pokaždé, je možné jej zapojit jako univerzálního správce virtuálních prostředí a handleru chybějících programů. V tomto případě, pokud není spuštěný program dostupný, bude nainstalován, a pokud byl nainstalován dříve, bude spuštěn v jeho prostředí. $ deno zsh: příkaz nenalezen: deno $ cd my-project $ deno tea: instalace deno.land^1.22 deno 1.27.0 > ^D

V současné podobě jsou balíčky dostupné pro Tea shromážděny ve dvou kolekcích – pantry.core a pantry.extra, které zahrnují metadata popisující zdroje stahování balíčků, skripty sestavení a závislosti. Kolekce pantry.core obsahuje hlavní knihovny a nástroje, udržované v aktuálním stavu a testované vývojáři Tea. Pantry.extra obsahuje balíčky, které nejsou dostatečně stabilizované nebo které jsou navrženy členy komunity. Pro navigaci v balíčcích je k dispozici webové rozhraní.

Proces vytváření balíčků pro Tea je značně zjednodušen a spočívá v vytvoření jednoho univerzálního souboru package.yml (příklad), který nevyžaduje přizpůsobení balíčku pro každou novou verzi. Balíček se může propojit s GitHubem a objevit nové verze a stáhnout jejich kód. Soubor také popisuje závislosti a poskytuje skripty sestavení pro podporované platformy. Nainstalované závislosti jsou neměnné (verze je pevná), což eliminuje opakování situací podobných incidentu na levém panelu.

Do budoucna se počítá s vytvořením decentralizovaných úložišť, která nejsou vázána na žádné samostatné úložiště a využívají distribuovaný blockchain pro metadata, a decentralizovanou infrastrukturu pro ukládání balíčků. Vydání budou certifikována přímo správci a přezkoumána zainteresovanými stranami. Je možné distribuovat tokeny kryptoměn za příspěvky na údržbu, podporu, distribuci a ověřování balíčků.

brew creator vyvíjí nového správce balíčků čaje


Zdroj: opennet.ru

Přidat komentář