Skaperen av brew utvikler en ny pakkebehandler-te

Max Howell, forfatteren av det populære macOS-pakkehåndteringssystemet (Homebrew), utvikler en ny pakkebehandling kalt Tea, posisjonert som en fortsettelse av utviklingen av brygg, som går utover pakkebehandlingen og tilbyr en enhetlig pakkeadministrasjonsinfrastruktur som fungerer med desentraliserte depoter. Prosjektet utvikles i utgangspunktet som et multiplattformprosjekt (macOS og Linux støttes for tiden, Windows-støtte er under utvikling). Prosjektkoden er skrevet i TypeScript og distribuert under Apache 2.0-lisensen (brygget ble skrevet i Ruby og distribuert under BSD-lisensen).

Te er konseptuelt ikke som tradisjonelle pakkeforvaltere, og i stedet for "Jeg vil installere en pakke"-paradigmet, bruker den "Jeg vil bruke en pakke"-paradigmet. Spesielt har ikke Tea en kommando for å installere en pakke som sådan, men bruker i stedet miljøgenerering for å utføre pakkeinnholdet som ikke overlapper det gjeldende systemet. Pakker er plassert i en egen ~/.tea-katalog og er ikke bundet til absolutte baner (de kan flyttes).

To hovedmoduser for operasjon er gitt: gå til et kommandoskall med tilgang til miljøet med installerte pakker, og direkte anrop av pakkerelaterte kommandoer. For eksempel, når du kjører "tea +gnu.org/wget", vil pakkebehandleren laste ned wget-verktøyet og alle nødvendige avhengigheter, og deretter gi skalltilgang i miljøet der det installerte wget-verktøyet er tilgjengelig. Det andre alternativet involverer direkte oppstart - "tea +gnu.org/wget wget https://some_webpage", der wget-verktøyet vil bli installert og umiddelbart lansert i et eget miljø. Det er mulig å komponere komplekse kjeder, for eksempel for å laste ned white-paper.pdf-filen og behandle den med glow-verktøyet, du kan bruke følgende konstruksjon (hvis wget og glow mangler, vil de bli installert): te + gnu.org/wget wget -qO- https://tea.xyz/white-paper.pdf | te +charm.sh/glow glød - eller du kan bruke en enklere syntaks: te -X wget -qO- tea.xyz/white-paper | te -X glød -

På lignende måte kan du kjøre skript, kodeeksempler og one-liners direkte, og automatisk laste inn verktøyene som er nødvendige for driften. For eksempel, å kjøre "te https://gist.githubusercontent.com/i0bj/…/raw/colors.go -yellow" vil installere Go-verktøysettet og kjøre colors.go-skriptet med argumentet "-yellow".

For ikke å ringe te-kommandoen hver gang, er det mulig å koble den til som en universell leder av virtuelle miljøer og en behandler for manglende programmer. I dette tilfellet, hvis det kjørende programmet ikke er tilgjengelig, vil det bli installert, og hvis det ble installert tidligere, vil det bli lansert i sitt miljø. $ deno zsh: kommando ikke funnet: deno $ cd my-project $ deno tea: installerer deno.land^1.22 deno 1.27.0 > ^D

I sin nåværende form er pakkene som er tilgjengelige for Tea samlet i to samlinger - pantry.core og pantry.extra, som inkluderer metadata som beskriver kilder for pakkenedlasting, byggeskript og avhengigheter. Pantry.core-samlingen inkluderer hovedbibliotekene og verktøyene, holdt oppdatert og testet av Tea-utviklere. Pantry.extra inneholder pakker som ikke er stabilisert nok eller som er foreslått av medlemmer av fellesskapet. Et nettgrensesnitt er tilgjengelig for å navigere gjennom pakkene.

Prosessen med å lage pakker for Tea er sterkt forenklet og kommer ned til å lage én universell package.yml-fil (eksempel), som ikke krever tilpasning av pakken for hver nye versjon. En pakke kan koble til GitHub for å oppdage nye versjoner og laste ned koden deres. Filen beskriver også avhengigheter og gir byggeskript for støttede plattformer. De installerte avhengighetene er uforanderlige (versjonen er løst), noe som eliminerer gjentakelse av situasjoner som ligner på hendelsen på venstre pad.

I fremtiden planlegges det å lage desentraliserte repositorier som ikke er knyttet til noe separat lagring og bruke en distribuert blokkjede for metadata, og en desentralisert infrastruktur for lagring av pakker. Utgivelser vil bli sertifisert direkte av vedlikeholdere og gjennomgått av interessenter. Det er mulig å distribuere kryptovaluta-tokens for bidrag til vedlikehold, støtte, distribusjon og verifisering av pakker.

Skaperen av brew utvikler en ny pakkebehandler-te


Kilde: opennet.ru

Legg til en kommentar