4 puan yazan GN⁺ 2025-04-23 | 1 yorum | WhatsApp'ta paylaş
  • Sapphire, Rust ile geliştirilen yeni nesil bir paket yöneticisidir
  • Homebrew'dan ilham alır ve Formulae ile Casks'ı kurup yönetir
  • Şu anda yalnızca ARM mimarisini destekler; x86 desteği daha sonra eklenebilir
  • Proje, sapphire-core ve sapphire-cli bileşenlerinden oluşur
  • Sapphire, BSD-3-Clause lisansını kullanır

Uyarı

  • Sapphire, deneysel ve aktif olarak geliştirilen bir yazılımdır; kararsız olabilir
  • brew ile kurulmuş bir cask'ı Sapphire ile yeniden kurarsanız, yol biraz farklı bir konuma kurulur ve kullanıcı ayarları otomatik olarak taşınmaz

⚙️ Proje yapısı

  • sapphire-core: Paket getirme, bağımlılık çözme, arşiv çıkarma ve artifact işleme gibi görevlerden sorumlu çekirdek kütüphane
  • sapphire-cli: sapphire çalıştırılabilir dosyasının çekirdek kütüphaneyi sarmaladığı komut satırı arayüzü

🚀 Yol haritası

  1. upgrade komutuyla kurulu paketleri güncelleme
  2. Eski indirmeleri, sürümleri ve önbelleği temizleme
  3. Hızlı yeniden kurulum için Reinstall komutu
  4. /opt/sapphire için bağımsız düzen desteği sunan Prefix isolation
  5. Ortamı bootstrap eden sapphire init yardımcısı
  6. Sürekli hata düzeltmeleri ve kararlılık iyileştirmeleri

📦 Kullanım

  • Yardım çıktısı: sapphire --help
  • Metadata güncelleme: sapphire update
  • Paket arama: sapphire search
  • Paket bilgisi alma: sapphire info
  • Bottle veya Cask kurma: sapphire install
  • Kaynaktan Formula derleyip kurma: sapphire install --build-from-source
  • Kaldırma: sapphire uninstall
  • (yakında) sapphire upgrade [--all] , sapphire cleanup, sapphire init

🏗️ Kaynaktan derleme

Ön koşul: kararlı Rust araç zinciri

  • git clone
  • cd sapphire
  • cargo build --release
  • sapphire ikili dosyası target/release/sapphire konumunda yer alır; bunu PATH içine ekleyin

1 yorum

 
GN⁺ 2025-04-23
Hacker News görüşleri
  • Kendi yaptığı projenin Homebrew'den çok daha iyi olduğu pek fazla nokta olmadığını, ancak göreli yol ayarlamaları gibi bazı sorunları çözdüğünü söylüyor

    • Rust dışındaki çoğu bottle kurulumu iyi çalışıyor
    • Kaynaktan derlenen formüller, JSON API'deki bilgi eksikliği nedeniyle zorlayıcı
    • .rb betiklerini daha genel, makine tarafından okunabilir bir biçime dönüştürmeyi planlıyor
    • .dmg'den .app'e dönüşüm ve .pkg kurucuları testlerde iyi çalışıyor
    • Modern ARM Mac'lerde çoğu formül bottle olarak sunulduğu için tam teşekküllü bir paket yöneticisi olabilir
    • Ansible'ın tek bir makine için fazla ağır olduğunu düşündüğü için Mac için deklaratif bir paket ve sistem yöneticisi geliştiriyor
    • brew komutlarını sarmalamanın çok yavaş olması onu yeni bir proje başlatmaya yöneltmiş
    • Hata raporları, issue'lar ve yapıcı pull request'ler için teşekkür ediyor
  • Homebrew'nin iki temel kısmını açıklıyor

    • İstemci tarafında çoğu kullanıcı bottle kurulumu ve desteklenen platformları kullanıyor; bunlar küçük bir yerel kod kurucusuyla kolayca desteklenebilir
    • Geliştiriciler, depolar ve CI/CD makineleri Homebrew'nin karmaşık altyapısını oluşturuyor ve bu yapı formül DSL'siyle derinden bağlantılı
    • Homebrew, istemci tarafını karmaşık altyapıdan iyi şekilde izole ediyor
    • Bottle ve DMG'lerin paralel indirilmesi, Homebrew mimarisinin bir kısıtı değil; hizmete karşı nazik olmak için yapılmış bir tercih
  • Projenin eğlenceli ve iyi yapılmış olduğunu düşünüyor

    • Homebrew terminolojisinin korunmasına eleştirel yaklaşıyor
    • Paket ve depo gibi standart terimlerin kullanılmasının daha iyi olacağını öneriyor
  • Hedefin Homebrew ile eşdeğerlik olması konusunda şüphe dile getiriyor

    • Sürüm sabitleme gibi ek özellikler öneriyor
  • Önceden MacPorts kullanıcısı olduğunu, ancak neden Homebrew'ye geçtiğini anlatıyor

    • Yeni bir paket yöneticisi yazmanın daha iyi bir kurulum ortaya çıkarmayacağını düşündüğünü söylüyor
  • README'ye hedef, motivasyon ve gerekçe eklenmesini öneriyor

    • Homebrew'nin hangi sorunlarını çözmeye çalıştığının netleştirilmesi gerektiğini belirtiyor
  • Homebrew'nin geliştirilebileceğini kabul ediyor ve yeni denemeleri memnuniyetle karşılıyor

    • Homebrew geliştiricileri ve paketleyicilerinin niyetleri ile düşünce tarzlarından memnun olmadığını ifade ediyor
  • Proje adının daha kısa olacak şekilde değiştirilmesini öneriyor

    • Kısa bir adın daha akılda kalıcı ve daha hafif hissettirebileceğini söylüyor
  • Yazılımı sıfırdan yeniden yazmanın etkili olmadığını savunuyor

    • Homebrew bileşenlerini kademeli olarak değiştirmenin daha iyi olacağını öneriyor
    • Homebrew adının hacker grupları içinde kültürel olarak önemli olduğunu açıklıyor