Tea the new brew Creator パッケージマネージャー

Tea

tea は、コードの配布方法を変える新しいテクノロジーを生み出しています

マックス・ハウエル、作家 人気のあるパッケージ管理システムの 醸造 (Homebrew) の macOS が、それを明らかにした Tea と呼ばれる新しいパッケージ マネージャーの開発に取り組んでいます。 これは、brew 開発の継続として位置付けられ、パッケージ マネージャーを超えて、分散型リポジトリと連携する統合パッケージ管理インフラストラクチャを提供します。

Tea は、概念的には従来のパッケージ マネージャーとは異なります。、そして「パッケージをインストールしたい」パラダイムの代わりに、「パッケージを使用したい」アプローチを使用します。

特に Teaにはパッケージインストールコマンドがありません ただし、代わりに環境生成を使用して、現在のシステムと重複しないパッケージ コンテンツを実行します。 パッケージは別の ~/.tea ディレクトリに配置され、絶対パスには割り当てられません (移動できます)。

Tea には XNUMX つの基本モードが用意されています 操作方法: パッケージがインストールされた環境にアクセスしてコマンド シェルにジャンプし、パッケージ関連のコマンドを直接呼び出します。 たとえば、「tea +gnu.org/wget」を実行すると、パッケージ マネージャーは wget ユーティリティと必要なすべての依存関係をダウンロードし、インストールされた wget ユーティリティが利用可能な環境でシェル アクセスを提供します。

XNUMX 番目のオプションには、直接起動が含まれます: «tea +gnu.org/wget -qO-tea.xyz/white-paper | tea +charm.sh/glow グロー – これにより、wget ユーティリティがインストールされ、すぐに別の環境で実行され、glow でレンダリングされるファイルがダウンロードされます。 複雑な連鎖が可能です。たとえば、white-paper.pdf ファイルをダウンロードしてグロー ユーティリティで処理するには、次の構成を使用できます (wget とグローが存在しない場合は、インストールされます)。

同様に、 スクリプトを直接実行できます、コードサンプル、ワンライナー、ジョブに必要なツールを自動的にロードします。

たとえば、次を実行します。

tea https://gist.githubusercontent.com/i0bj/2b3afbe07a44179250474b5f36e7bd9b/raw/colors.go --yellow
tea: installing go 1.18.3
go: installing deps
go: running colors.go

Go 言語ツールキットをインストールし、引数として「–yellow」を指定して colors.go スクリプトを実行します。

毎回ティーコマンドを呼び出さないようにするために、ユニバーサルマネージャーとして接続することができます 仮想環境と不足しているプログラムのドライバー。 この場合、実行中のプログラムが使用できない場合はインストールされ、以前にインストールされていた場合は環境で開始されます。

現在の形では、 Tea で利用できるパッケージは XNUMX つのコレクションにまとめられています, pantry.core と pantry.extraには、パッケージのダウンロード ソース、ビルド スクリプト、および依存関係を説明するメタデータが含まれています。

コレクション pantry.core には、Tea 開発者が使用するコア ライブラリとユーティリティが含まれています。 最新の状態に保たれ、テストされています。 pantry.extra には十分に安定化されていないパッケージが含まれています またはコミュニティによって提案されたもの。 パッケージをナビゲートするための Web インターフェイスが用意されています。

Tea 用のパッケージを作成するプロセスは大幅に簡素化され、ユニバーサル package.yml ファイル (例) の作成に削減されます。これにより、新しいバージョンごとにパッケージを調整する必要がなくなります。 新しいバージョンを見つけてそのコードをダウンロードするには、パッケージを GitHub にリンクできます。

このファイルは、依存関係についても説明し、サポートされているプラ​​ットフォーム用のビルド スクリプトを提供します。 インストールされた依存関係は不変 (バージョンは固定) であるため、左パッド インシデントのような状況が繰り返されることはありません。

将来的には、分散リポジトリを作成する予定です。ue は個別のストレージに関連付けられておらず、メタデータ用に分散型ブロックチェーンを使用し、パッケージを格納するために分散型インフラストラクチャを使用します。 バージョンは、メンテナによって直接認定され、関係者によってレビューされます。 パッケージの保守、サポート、配布、検証に貢献するために暗号通貨トークンを配布することが可能です。

最後に、現在のところ言及する価値があります プロジェクトは当初、クロスプラットフォームとして開発されました (現在、macOS と Linux がサポートされています。Windows のサポートは開発中です。) プロジェクトのコードは TypeScript で書かれており、Apache 2.0 ライセンスの下でリリースされています (brew は Ruby で書かれており、BSD ライセンスの下で出荷されています)。

詳細を知りたい場合は、次の Web サイトで Tea の詳細とユーザー マニュアルを参照してください。 次のリンク。


Googleで優先ソースとして追加する