4 poin oleh GNโบ 2025-04-23 | 1 komentar | Bagikan ke WhatsApp
  • Sapphire adalah manajer paket generasi berikutnya yang dikembangkan dengan Rust
  • Terinspirasi oleh Homebrew, dan digunakan untuk memasang serta mengelola Formulae dan Casks
  • Saat ini hanya mendukung arsitektur ARM, dan dukungan x86 mungkin akan ditambahkan nanti
  • Proyek ini terdiri dari sapphire-core dan sapphire-cli
  • Sapphire menggunakan lisensi BSD-3-Clause

Peringatan

  • Sapphire adalah perangkat lunak eksperimental yang sedang dikembangkan secara aktif, sehingga bisa tidak stabil
  • Jika cask yang dipasang dengan brew dipasang ulang menggunakan Sapphire, jalur instalasinya akan sedikit berbeda dan pengaturan pengguna tidak akan dimigrasikan secara otomatis

โš™๏ธ Struktur proyek

  • sapphire-core: pustaka inti yang menangani pengambilan paket, penyelesaian dependensi, ekstraksi arsip, pemrosesan artefak, dan sebagainya
  • sapphire-cli: antarmuka baris perintah, di mana executable sapphire membungkus pustaka inti

๐Ÿš€ Peta jalan

  1. Memperbarui paket yang terpasang dengan perintah upgrade
  2. Membersihkan unduhan lama, versi lama, dan cache
  3. Perintah Reinstall untuk pemasangan ulang yang cepat
  4. Prefix isolation yang mendukung /opt/sapphire sebagai tata letak terpisah
  5. Pembantu sapphire init untuk melakukan bootstrap lingkungan
  6. Perbaikan bug berkelanjutan dan peningkatan stabilitas

๐Ÿ“ฆ Cara penggunaan

  • Tampilkan bantuan: sapphire --help
  • Perbarui metadata: sapphire update
  • Cari paket: sapphire search
  • Dapatkan informasi paket: sapphire info
  • Pasang Bottle atau Cask: sapphire install
  • Build dan pasang Formula dari source: sapphire install --build-from-source
  • Hapus: sapphire uninstall
  • (Segera hadir) sapphire upgrade [--all] , sapphire cleanup, sapphire init

๐Ÿ—๏ธ Build dari source

Prasyarat: toolchain Rust yang stabil

  • git clone
  • cd sapphire
  • cargo build --release
  • Biner sapphire berada di target/release/sapphire, lalu tambahkan ke PATH

1 komentar

 
GNโบ 2025-04-23
Komentar Hacker News
  • Proyek buatannya memang tidak jauh lebih baik daripada Homebrew, tetapi sedang memperbaiki beberapa masalah seperti pengaturan path relatif

    • Sebagian besar instalasi bottle selain Rust berjalan dengan baik
    • Formula yang dibangun dari source sulit ditangani karena kurangnya informasi dari JSON API
    • Ada rencana untuk mengubah skrip .rb ke format yang lebih umum dan dapat dibaca mesin
    • Konversi dari .dmg ke .app dan installer .pkg berfungsi baik berdasarkan pengujian
    • Karena sebagian besar formula di Mac ARM modern tersedia sebagai bottle, ini bisa menjadi package manager yang sepenuhnya fungsional
    • Karena Ansible terasa berlebihan untuk satu mesin, sedang dikembangkan package manager dan system manager deklaratif untuk mac
    • Membungkus perintah Brew terlalu lambat, sehingga proyek baru ini dimulai
    • Terima kasih atas laporan bug, issue, dan pull request yang konstruktif
  • Menjelaskan dua bagian inti dari Homebrew

    • Di sisi klien, sebagian besar pengguna memakai instalasi bottle dan platform yang didukung, sehingga mudah didukung dengan installer native kecil
    • Developer, repository, dan mesin CI/CD membentuk infrastruktur Homebrew yang kompleks, dan ini terhubung erat dengan DSL formula
    • Homebrew berhasil mengisolasi sisi klien dari infrastruktur kompleks tersebut
    • Unduhan paralel untuk bottle dan DMG bukan keterbatasan arsitektur Homebrew, melainkan pilihan demi menghormati layanan
  • Proyek ini dinilai menyenangkan dan dibuat dengan baik

    • Bersikap kritis terhadap penggunaan istilah Homebrew yang tetap dipertahankan
    • Menyarankan agar memakai istilah standar seperti package dan repository
  • Mempertanyakan tujuan untuk mencapai kesetaraan dengan Homebrew

    • Mengusulkan fitur tambahan seperti kemampuan pinning versi
  • Pernah menjadi pengguna MacPorts, tetapi menjelaskan alasan beralih ke Homebrew

    • Menganggap membuat package manager baru tidak akan menghasilkan konfigurasi yang lebih baik
  • Menyarankan agar tujuan, motivasi, dan alasannya ditambahkan ke README

    • Perlu memperjelas alasan ingin menyelesaikan masalah di Homebrew
  • Mengakui bahwa Homebrew masih bisa ditingkatkan, dan menyambut upaya baru

    • Menyatakan ketidakpuasan terhadap niat dan pola pikir para developer dan packager Homebrew
  • Menyarankan agar nama proyek diubah menjadi lebih pendek

    • Nama yang singkat bisa lebih mudah diingat dan memberi kesan lebih ringan
  • Berpendapat bahwa menulis ulang software dari awal bukan pendekatan yang efektif

    • Menyarankan agar komponen Homebrew diganti secara bertahap
    • Menjelaskan bahwa nama Homebrew punya arti budaya yang penting di kalangan hacker