brew creator 開發新的茶包管理器

Max Howell是流行的macOS包管理系統brew(Homebrew)的作者,他正在開發一個名為Tea的新包管理器,定位為brew開發的延續,超越了包管理器,提供了一個統一的、可運行的套件管理基礎設施具有分散的儲存庫。 該專案最初是作為一個多平台專案開發的(目前支援 macOS 和 Linux,Windows 支援正在開發中)。 這個專案程式碼是用 TypeScript 編寫的,並在 Apache 2.0 許可證下分發(brew 是用 Ruby 編寫的,並在 BSD 許可證下分發)。

Tea 在概念上與傳統的套件管理器不同,它不使用「我想安裝套件」範例,而是使用「我想使用套件」範例。 特別是,Tea 本身沒有安裝套件的命令,而是使用環境生成來執行與當前系統不重疊的套件內容。 包放置在單獨的 ~/.tea 目錄中,並且不綁定到絕對路徑(它們可以移動)。

提供了兩種主要的操作模式:進入可存取已安裝軟體包的環境的命令 shell,以及直接呼叫與軟體包相關的命令。 例如,執行「tea +gnu.org/wget」時,套件管理器將下載 wget 公用程式和所有必要的依賴項,然後在已安裝的 wget 公用程式可用的環境中提供 shell 存取。 第二個選項涉及直接啟動 - “tea +gnu.org/wget wget https://some_webpage”,其中 wget 實用程式將安裝並立即在單獨的環境中啟動。 可以組成複雜的鏈,例如,要下載white-paper.pdf檔案並使用glow實用程式對其進行處理,您可以使用以下構造(如果缺少wget和glow,則會安裝它們):tea + gnu.org/ wget wget -qO- https://tea.xyz/white-paper.pdf | tea +charm.sh/glow 發光 - 或者您可以使用更簡單的語法:tea -X wget -qO- tea.xyz/white-paper | tea +charm.sh/glow 茶-X發光—

以類似的方式,您可以直接運行腳本、程式碼範例和單行程式碼,自動載入其運行所需的工具。 例如,執行「tea https://gist.githubusercontent.com/i0bj/…/raw/colors.go -yellow」將安裝Go工具包並使用參數「-yellow」執行colors.go腳本。

為了避免每次都呼叫 tea 命令,可以將其連接為虛擬環境的通用管理器和遺失程式的處理程序。 在這種情況下,如果正在執行的程式不可用,則會安裝該程序,如果先前已安裝該程序,則會在其環境中啟動該程序。 $ deno zsh: 找不到指令: deno $ cd my-project $ deno tea: 安裝 deno.land^1.22 deno 1.27.0 > ^D

在目前的形式中,Tea 可用的套件收集在兩個集合中 - pantry.core 和 pantry.extra,其中包括描述套件下載來源、建置腳本和依賴項的元資料。 pantry.core 集合包括主要的函式庫和實用程序,由 Tea 開發人員進行維護和測試。 Pantry.extra 包含不夠穩定或社群成員建議的軟體包。 提供了一個 Web 介面來瀏覽套件。

為 Tea 建立包的過程大大簡化,只需建立一個通用的 package.yml 檔案(範例),無需為每個新版本調整套件。 套件可以連結到 GitHub 以發現新版本並下載其程式碼。 該文件還描述了依賴關係並提供了受支援平台的建置腳本。 安裝的依賴是不可變的(版本是固定的),這就消除了類似left-pad事件的情況的重複。

未來,計劃創建不依賴任何單獨儲存的去中心化儲存庫,並使用分散式區塊鏈來儲存元數據,並使用去中心化基礎設施來儲存套件。 版本將由維護者直接認證並由利害關係人審查。 可以分發加密貨幣代幣來為軟體包的維護、支援、分發和驗證做出貢獻。

brew creator 開發新的茶包管理器


來源: opennet.ru

添加評論