tea กำลังสร้างเทคโนโลยีใหม่ที่จะเปลี่ยนวิธีกระจายโค้ด
Max Howell ผู้เขียนระบบจัดการแพ็กเกจ homebrew ยอดนิยมสำหรับ macOS อย่าง brewประกาศว่าเขากำลังพัฒนาระบบจัดการแพ็กเกจใหม่ชื่อ Teaซึ่งวางตำแหน่งให้เป็นการต่อยอดจาก brew โดยก้าวข้ามขีดจำกัดของการเป็นระบบจัดการแพ็กเกจ และนำเสนอโครงสร้างพื้นฐานการจัดการแพ็กเกจแบบครบวงจรที่ทำงานร่วมกับคลังเก็บข้อมูลแบบกระจายศูนย์ได้
Tea มีแนวคิดที่แตกต่างจากโปรแกรมจัดการแพ็กเกจแบบดั้งเดิมและแทนที่จะใช้รูปแบบ "ฉันต้องการติดตั้งแพ็กเกจ" มันใช้แนวทาง "ฉันต้องการใช้แพ็กเกจ" แทน
โดยเฉพาะอย่างยิ่งTea ไม่มีคำสั่งติดตั้งแพ็กเกจโดยตรง แต่จะใช้การสร้างสภาพแวดล้อมเพื่อเรียกใช้เนื้อหาของแพ็กเกจที่ไม่ซ้ำซ้อนกับระบบปัจจุบัน แพ็กเกจจะถูกจัดเก็บไว้ในไดเร็กทอรี ~/.tea แยกต่างหาก และไม่ได้กำหนดให้กับพาธแบบสัมบูรณ์ (สามารถย้ายได้)
Tea มีโหมดการทำงานพื้นฐานสองโหมด ได้แก่ การเข้าสู่เชลล์คำสั่งพร้อมสิทธิ์การเข้าถึงสภาพแวดล้อมที่มีแพ็กเกจที่ติดตั้งไว้ และการเรียกใช้คำสั่งที่เกี่ยวข้องกับแพ็กเกจโดยตรง ตัวอย่างเช่น การเรียกใช้ "tea +gnu.org/wget" จะทำให้ตัวจัดการแพ็กเกจดาวน์โหลดโปรแกรม wget และส่วนประกอบที่จำเป็นทั้งหมด จากนั้นจะให้สิทธิ์การเข้าถึงเชลล์ในสภาพแวดล้อมที่มีโปรแกรม wget ที่ติดตั้งไว้พร้อมใช้งาน
ตัวเลือกที่สองคือการเรียกใช้งานโดยตรง: ` tea +gnu.org/wget -qO- tea.xyz/white-paper | tea +charm.sh/glow glow -`ซึ่งจะติดตั้งยูทิลิตี้ wget และเรียกใช้งานทันทีในสภาพแวดล้อมแยกต่างหาก เพื่อดาวน์โหลดไฟล์ที่จะถูกแสดงผลด้วย glow นอกจากนี้ยังสามารถใช้ลำดับการทำงานที่ซับซ้อนกว่าได้ เช่น หากต้องการดาวน์โหลดไฟล์ `white-paper.pdf` และประมวลผลด้วยยูทิลิตี้ glow คุณสามารถใช้คำสั่งต่อไปนี้ (หาก wget และ glow ยังไม่ได้ติดตั้ง ระบบจะทำการติดตั้งให้)
ในทำนองเดียวกันคุณสามารถเรียกใช้สคริปต์ตัวอย่างโค้ด และวลีที่ชาญฉลาดได้โดยตรง โดยระบบจะโหลดเครื่องมือที่จำเป็นสำหรับงานนั้นโดยอัตโนมัติ
ตัวอย่างเช่น ให้รัน:
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 และรันสคริปต์ colors.go โดยมี “–yellow” เป็นอาร์กิวเมนต์
เพื่อหลีกเลี่ยงการเรียกใช้คำสั่ง tea ทุกครั้ง คุณสามารถเชื่อมต่อ tea เป็นตัวจัดการสภาพแวดล้อมเสมือนแบบสากลและตัวจัดการโปรแกรมที่หายไปได้ ในกรณีนี้ หากโปรแกรมที่กำลังทำงานอยู่ไม่พร้อมใช้งาน โปรแกรมจะถูกติดตั้ง และหากเคยติดตั้งไว้ก่อนหน้านี้ โปรแกรมจะถูกเรียกใช้ในสภาพแวดล้อมของคุณ
ในรูปแบบปัจจุบันแพ็กเกจที่มีให้ใช้งานสำหรับ Tea จะถูกรวบรวมไว้ในสองชุดได้แก่pantry.core และ pantry.extraซึ่งประกอบด้วยเมตาเดต้าที่อธิบายแหล่งที่มาของการดาวน์โหลดแพ็กเกจ สคริปต์การสร้าง และส่วนประกอบที่จำเป็น
แพ็กเกจ pantry.core ประกอบด้วยไลบรารีหลักและยูทิลิตี้ที่นักพัฒนา Teaคอยอัปเดตและทดสอบอย่างสม่ำเสมอ ส่วนpantry.extra ประกอบด้วยแพ็กเกจที่ยังไม่เสถียรหรือได้รับการแนะนำจากชุมชน มีเว็บอินเทอร์เฟซให้ใช้งานสำหรับการเรียกดูแพ็กเกจเหล่านี้
กระบวนการสร้างแพ็คเกจสำหรับ Tea นั้นง่ายขึ้นอย่างมากและลดลงเหลือเพียงการสร้างไฟล์ package.yml สากล (ตัวอย่าง) ซึ่งไม่จำเป็นต้องปรับแพ็คเกจสำหรับเวอร์ชันใหม่แต่ละเวอร์ชัน หากต้องการค้นหาเวอร์ชันใหม่และดาวน์โหลดโค้ด สามารถเชื่อมโยงแพ็คเกจกับ GitHub ได้
ไฟล์นี้ยังอธิบายการขึ้นต่อกันและจัดเตรียมสคริปต์บิลด์สำหรับแพลตฟอร์มที่รองรับ การพึ่งพาที่ติดตั้งนั้นไม่เปลี่ยนรูป (เวอร์ชันได้รับการแก้ไขแล้ว) ซึ่งช่วยลดสถานการณ์ซ้ำ ๆ ที่คล้ายกับเหตุการณ์แพดด้านซ้าย
ในอนาคต มีแผนที่จะสร้างคลังเก็บข้อมูลแบบกระจายศูนย์ที่ไม่ผูกติดกับพื้นที่จัดเก็บข้อมูลใดๆ และใช้บล็อกเชนแบบกระจายศูนย์สำหรับข้อมูลเมตาและโครงสร้างพื้นฐานแบบกระจายศูนย์สำหรับการจัดเก็บแพ็กเกจ เวอร์ชันต่างๆ จะได้รับการรับรองโดยตรงจากผู้ดูแลระบบและได้รับการตรวจสอบโดยผู้มีส่วนได้ส่วนเสีย อาจเป็นไปได้ที่จะแจกจ่ายโทเค็นสกุลเงินดิจิทัลเพื่อสนับสนุนการบำรุงรักษา การสนับสนุน การแจกจ่าย และการตรวจสอบแพ็กเกจ
สุดท้ายนี้ ควรกล่าวถึงว่าโครงการนี้กำลังได้รับการพัฒนาให้เป็นแอปพลิเคชันแบบข้ามแพลตฟอร์ม (ปัจจุบันรองรับ macOS และ Linux ส่วนการรองรับ Windows กำลังอยู่ระหว่างการพัฒนา) โค้ดของโครงการเขียนด้วย TypeScript และเผยแพร่ภายใต้ใบอนุญาต Apache 2.0 (brew เขียนด้วย Ruby และเผยแพร่ภายใต้ใบอนุญาต BSD)
หากคุณสนใจเรียนรู้เพิ่มเติม คุณสามารถดูรายละเอียดและคู่มือการใช้งาน Tea ได้ที่ลิงก์ต่อไปนี้