ผู้สร้างเบียร์พัฒนาตัวจัดการแพ็คเกจชาใหม่

Max Howell ผู้เขียนระบบการจัดการแพ็คเกจ macOS ยอดนิยม (Homebrew) กำลังพัฒนาตัวจัดการแพ็คเกจใหม่ที่เรียกว่า Tea ซึ่งวางตำแหน่งให้เป็นการพัฒนาต่อเนื่องของการชง นอกเหนือจากตัวจัดการแพ็คเกจและนำเสนอโครงสร้างพื้นฐานการจัดการแพ็คเกจแบบครบวงจรที่ใช้งานได้ ด้วยพื้นที่เก็บข้อมูลแบบกระจายอำนาจ เริ่มแรกโครงการนี้ได้รับการพัฒนาเป็นโครงการที่มีหลายแพลตฟอร์ม (ปัจจุบันรองรับ macOS และ Linux ส่วนรองรับ Windows อยู่ระหว่างการพัฒนา) รหัสโครงการเขียนด้วย TypeScript และเผยแพร่ภายใต้ใบอนุญาต Apache 2.0 (ชงเขียนด้วยภาษา Ruby และเผยแพร่ภายใต้ใบอนุญาต BSD)

ตามแนวคิดแล้ว Tea ไม่เหมือนผู้จัดการแพ็คเกจแบบดั้งเดิม และแทนที่จะใช้กระบวนทัศน์ "ฉันต้องการติดตั้งแพ็คเกจ" จะใช้กระบวนทัศน์ "ฉันต้องการใช้แพ็คเกจ" โดยเฉพาะอย่างยิ่ง Tea ไม่มีคำสั่งให้ติดตั้งแพ็คเกจดังกล่าว แต่ใช้การสร้างสภาพแวดล้อมเพื่อดำเนินการเนื้อหาแพ็คเกจที่ไม่ทับซ้อนกับระบบปัจจุบันแทน แพ็คเกจจะถูกวางไว้ในไดเร็กทอรี ~/.tea แยกต่างหาก และไม่ได้ผูกไว้กับพาธแบบสัมบูรณ์ (สามารถย้ายได้)

มีโหมดการทำงานหลักสองโหมด: ไปที่เชลล์คำสั่งพร้อมการเข้าถึงสภาพแวดล้อมพร้อมแพ็คเกจที่ติดตั้ง และการเรียกใช้คำสั่งที่เกี่ยวข้องกับแพ็คเกจโดยตรง ตัวอย่างเช่น เมื่อดำเนินการ "tea +gnu.org/wget" ตัวจัดการแพ็คเกจจะดาวน์โหลดยูทิลิตี้ wget และการอ้างอิงที่จำเป็นทั้งหมด จากนั้นให้สิทธิ์การเข้าถึงเชลล์ในสภาพแวดล้อมที่มียูทิลิตี้ wget ที่ติดตั้งไว้พร้อมใช้งาน ตัวเลือกที่สองเกี่ยวข้องกับการเปิดใช้งานโดยตรง - “tea +gnu.org/wget wget https://some_webpage” ซึ่งยูทิลิตี้ wget จะถูกติดตั้งและเปิดใช้งานทันทีในสภาพแวดล้อมที่แยกจากกัน เป็นไปได้ที่จะสร้างเชนที่ซับซ้อนเช่นเพื่อดาวน์โหลดไฟล์ white-paper.pdf และประมวลผลด้วยยูทิลิตี้เรืองแสงคุณสามารถใช้โครงสร้างต่อไปนี้ (หาก wget และเรืองแสงหายไปพวกมันจะถูกติดตั้ง): ชา + gnu.org/wget wget -qO- https:// /tea.xyz/white-paper.pdf | tea +charm.sh/glow Glow - หรือคุณสามารถใช้ไวยากรณ์ที่ง่ายกว่า: tea -X wget -qO- tea.xyz/white-paper | ชา -X โกลว์ —

ในทำนองเดียวกัน คุณสามารถรันสคริปต์ ตัวอย่างโค้ด และ one-liner ได้โดยตรง โดยจะโหลดเครื่องมือที่จำเป็นสำหรับการดำเนินการโดยอัตโนมัติ ตัวอย่างเช่น การรัน "tea https://gist.githubusercontent.com/i0bj/…/raw/colors.go -yellow" จะติดตั้งชุดเครื่องมือ Go และรันสคริปต์ colours.go ด้วยอาร์กิวเมนต์ "-yellow"

เพื่อไม่ให้เรียกคำสั่ง 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 มีแพ็คเกจที่ไม่เสถียรเพียงพอหรือที่แนะนำโดยสมาชิกของชุมชน มีเว็บอินเตอร์เฟสเพื่อนำทางผ่านแพ็คเกจ

กระบวนการสร้างแพ็คเกจสำหรับ Tea นั้นง่ายขึ้นอย่างมาก และเริ่มต้นที่การสร้างไฟล์ package.yml สากลหนึ่งไฟล์ (ตัวอย่าง) ซึ่งไม่จำเป็นต้องปรับแพ็คเกจสำหรับเวอร์ชันใหม่แต่ละเวอร์ชัน แพ็คเกจสามารถลิงก์ไปยัง GitHub เพื่อค้นหาเวอร์ชันใหม่และดาวน์โหลดโค้ดของพวกเขา ไฟล์นี้ยังอธิบายการขึ้นต่อกันและจัดทำสคริปต์สำหรับแพลตฟอร์มที่รองรับ การขึ้นต่อกันที่ติดตั้งไว้นั้นไม่เปลี่ยนรูป (เวอร์ชันได้รับการแก้ไขแล้ว) ซึ่งช่วยลดการเกิดซ้ำของสถานการณ์ที่คล้ายกับเหตุการณ์ในแพดด้านซ้าย

ในอนาคต มีการวางแผนที่จะสร้างพื้นที่เก็บข้อมูลแบบกระจายอำนาจที่ไม่เชื่อมโยงกับพื้นที่เก็บข้อมูลแยกต่างหาก และใช้บล็อคเชนแบบกระจายสำหรับข้อมูลเมตา และโครงสร้างพื้นฐานแบบกระจายอำนาจสำหรับการจัดเก็บแพ็คเกจ การเผยแพร่จะได้รับการรับรองโดยตรงจากผู้ดูแลและตรวจสอบโดยผู้มีส่วนได้ส่วนเสีย มีความเป็นไปได้ที่จะแจกจ่ายโทเค็นสกุลเงินดิจิทัลเพื่อสนับสนุนการบำรุงรักษา การสนับสนุน การแจกจ่าย และการตรวจสอบแพ็คเกจ

ผู้สร้างเบียร์พัฒนาตัวจัดการแพ็คเกจชาใหม่


ที่มา: opennet.ru

เพิ่มความคิดเห็น