Sapphire: ตัวจัดการแพ็กเกจบน macOS ที่พัฒนาด้วย Rust (ทางเลือกแทน Homebrew)
(github.com/alexykn)- Sapphire เป็นตัวจัดการแพ็กเกจยุคถัดไปที่พัฒนาด้วย Rust
- ได้แรงบันดาลใจจาก Homebrew และใช้ติดตั้งรวมถึงจัดการ Formulae และ Casks
- ขณะนี้รองรับเฉพาะสถาปัตยกรรม ARM เท่านั้น และอาจมีการเพิ่มการรองรับ x86 ในภายหลัง
- โครงการประกอบด้วย sapphire-core และ sapphire-cli
- Sapphire ใช้สัญญาอนุญาต BSD-3-Clause
คำเตือน
- Sapphire เป็นซอฟต์แวร์เชิงทดลองที่ยังอยู่ระหว่างการพัฒนาอย่างต่อเนื่อง จึงอาจไม่เสถียร
- หากติดตั้ง cask ที่เคยติดตั้งด้วย brew ใหม่ด้วย Sapphire ตำแหน่งพาธที่ติดตั้งจะต่างออกไปเล็กน้อย และการตั้งค่าของผู้ใช้จะไม่ถูกย้ายให้อัตโนมัติ
⚙️ โครงสร้างโครงการ
- sapphire-core: ไลบรารีหลัก รับผิดชอบการดึงแพ็กเกจ การแก้ไข dependency การแตกไฟล์ archive และการจัดการ artifact เป็นต้น
- sapphire-cli: ส่วนติดต่อแบบบรรทัดคำสั่ง โดยไฟล์รัน
sapphireจะครอบไลบรารีหลักไว้อีกชั้น
🚀 โรดแมป
- อัปเดตแพ็กเกจที่ติดตั้งแล้วด้วยคำสั่ง upgrade
- ล้างไฟล์ดาวน์โหลดเก่า เวอร์ชันเก่า และแคช
- คำสั่ง Reinstall เพื่อการติดตั้งใหม่อย่างรวดเร็ว
- Prefix isolation ที่รองรับ
/opt/sapphireเป็นเลย์เอาต์แยกอิสระ - ตัวช่วย
sapphire initสำหรับบูตสแตรปสภาพแวดล้อม - แก้บั๊กอย่างต่อเนื่องและปรับปรุงเสถียรภาพ
📦 วิธีใช้งาน
- แสดงความช่วยเหลือ:
sapphire --help - อัปเดตเมทาดาทา:
sapphire update - ค้นหาแพ็กเกจ:
sapphire search - ดูข้อมูลแพ็กเกจ:
sapphire info - ติดตั้ง Bottle หรือ Cask:
sapphire install - สร้างและติดตั้ง Formula จากซอร์ส:
sapphire install --build-from-source - ถอนการติดตั้ง:
sapphire uninstall - (จะมาในเร็ว ๆ นี้)
sapphire upgrade [--all],sapphire cleanup,sapphire init
🏗️ การบิลด์จากซอร์ส
ข้อกำหนดเบื้องต้น: ชุดเครื่องมือ Rust รุ่นเสถียร
git clonecd sapphirecargo build --release- ไบนารี
sapphireอยู่ที่target/release/sapphireและให้นำไปเพิ่มในPATH
1 ความคิดเห็น
ความเห็นจาก Hacker News
อธิบายว่าโปรเจ็กต์ที่ตนสร้างอาจไม่ได้ดีกว่า Homebrew มากนัก แต่กำลังแก้ปัญหาบางอย่าง เช่น การตั้งค่า relative path
อธิบายองค์ประกอบหลักสองส่วนของ Homebrew
มองว่าโปรเจ็กต์นี้สนุกและทำออกมาได้ดี
ตั้งคำถามกับการตั้งเป้าความเท่าเทียมกับ Homebrew
เคยเป็นผู้ใช้ MacPorts แต่เปลี่ยนมาใช้ Homebrew และอธิบายเหตุผล
เสนอให้เพิ่มเป้าหมาย, แรงจูงใจ และเหตุผลไว้ใน README
ยอมรับว่า Homebrew ยังปรับปรุงได้อีก และยินดีต้อนรับความพยายามใหม่
เสนอให้เปลี่ยนชื่อโปรเจ็กต์ให้สั้นลง
โต้แย้งว่าการเขียนซอฟต์แวร์ขึ้นใหม่ไม่ใช่วิธีที่มีประสิทธิภาพ