Brew Creator entwickelt neuen Tee-Paketmanager

Max Howell, Autor des beliebten Paketverwaltungssystems macOS brew (Homebrew), entwickelt einen neuen Paketmanager, Tea, der als Fortsetzung der Entwicklung von brew positioniert ist, über den Paketmanager hinausgeht und eine einheitliche Paketverwaltungsinfrastruktur bietet, die mit funktioniert dezentrale Repositories. Das Projekt wird zunächst als Multiplattform-Projekt entwickelt (derzeit werden macOS und Linux unterstützt, die Windows-Unterstützung befindet sich in der Entwicklung). Der Projektcode ist in TypeScript geschrieben und wird unter der Apache 2.0-Lizenz vertrieben (Brew wurde in Ruby geschrieben und unter einer BSD-Lizenz geliefert).

Tea ist konzeptionell nicht wie herkömmliche Paketmanager und verwendet anstelle des Paradigmas „Ich möchte ein Paket installieren“ das Paradigma „Ich möchte ein Paket verwenden“. Insbesondere verfügt Tea nicht über einen Paketinstallationsbefehl als solchen, sondern nutzt stattdessen die Umgebungsgenerierung, um Paketinhalte auszuführen, die sich nicht mit dem aktuellen System überschneiden. Pakete werden in einem separaten ~/.tea-Verzeichnis abgelegt und sind keinen absoluten Pfaden zugeordnet (können verschoben werden).

Es stehen zwei grundlegende Betriebsmodi zur Verfügung: Springen zu einer Befehlsshell mit Zugriff auf eine Umgebung mit installierten Paketen und direktes Aufrufen paketbezogener Befehle. Wenn Sie beispielsweise „tea +gnu.org/wget“ ausführen, lädt der Paketmanager das Dienstprogramm „wget“ und alle erforderlichen Abhängigkeiten herunter und stellt dann Shell-Zugriff in einer Umgebung bereit, in der das installierte Dienstprogramm „wget“ verfügbar ist. Die zweite Option impliziert einen direkten Start – „tea +gnu.org/wget wget https://some_webpage“, wodurch das Dienstprogramm wget installiert und sofort in einer separaten Umgebung gestartet wird. Eine komplexe Verkettung ist möglich. Um beispielsweise die Datei „white-paper.pdf“ herunterzuladen und mit dem Dienstprogramm „Glühen“ zu verarbeiten, können Sie die folgende Konstruktion verwenden (wenn wget und glow nicht vorhanden sind, werden sie installiert): tea +gnu. org/wget wget -qO- https://tea.xyz/white-paper.pdf | tea +charm.sh/glow glow – oder Sie können die einfachere Syntax verwenden: tea -X wget -qO- tea.xyz/white-paper | Tee-X-Glühen

Ebenso können Sie Skripte, Codebeispiele und Einzeiler direkt ausführen und dabei automatisch die für ihre Arbeit erforderlichen Tools laden. Wenn Sie beispielsweise „tea https://gist.githubusercontent.com/i0bj/…/raw/colors.go --yellow“ ausführen, wird das Go-Sprach-Toolkit installiert und das Skript „colors.go“ mit dem Argument „--yellow“ ausgeführt.

Um den Befehl tea nicht jedes Mal aufzurufen, besteht die Möglichkeit, ihn als universellen Manager virtueller Umgebungen und Handler für fehlende Programme zu binden. Wenn das laufende Programm in diesem Fall nicht verfügbar ist, wird es installiert, und wenn es zuvor installiert wurde, wird es in seiner Umgebung gestartet. $ deno zsh: Befehl nicht gefunden: deno $ cd my-project $ deno tea: deno.land^1.22 installieren deno 1.27.0 > ^D

In seiner aktuellen Form sind die für Tea verfügbaren Pakete in zwei Sammlungen, pantry.core und pantry.extra, gesammelt, die Metadaten enthalten, die Paket-Downloadquellen, Build-Skripte und Abhängigkeiten beschreiben. Die pantry.core-Sammlung umfasst Kernbibliotheken und Dienstprogramme, die von den Tea-Entwicklern auf dem neuesten Stand gehalten und getestet werden. pantry.extra enthält Pakete, die nicht gut stabilisiert sind oder von der Community vorgeschlagen werden. Für die Navigation durch die Pakete steht eine Weboberfläche zur Verfügung.

Der Prozess zum Erstellen von Paketen für Tea wird erheblich vereinfacht und läuft darauf hinaus, eine universelle package.yml-Datei (Beispiel) zu erstellen, die nicht erfordert, dass das Paket für jede neue Version angepasst wird. Um neue Versionen zu entdecken und deren Code herunterzuladen, kann das Paket auf GitHub verlinkt werden. Die Datei beschreibt außerdem Abhängigkeiten und stellt Build-Skripte für unterstützte Plattformen bereit. Installierte Abhängigkeiten sind unveränderlich (die Version ist fest), wodurch die Wiederholung von Situationen ähnlich dem Vorfall mit dem linken Pad verhindert wird.

Zukünftig ist geplant, dezentrale Repositories zu schaffen, die nicht an einen separaten Speicher gebunden sind und eine verteilte Blockchain für Metadaten sowie eine dezentrale Infrastruktur zum Speichern von Paketen verwenden. Releases werden direkt von den Betreuern zertifiziert und von den Stakeholdern überprüft. Es ist möglich, Kryptowährungstoken als Beitrag zur Wartung, Unterstützung, Verteilung und Überprüfung von Paketen zu verteilen.

Brew Creator entwickelt neuen Tee-Paketmanager


Source: opennet.ru

Kommentar hinzufügen