4 पॉइंट द्वारा GN⁺ 2025-04-23 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Sapphire एक अगली पीढ़ी का पैकेज मैनेजर है, जिसे Rust में विकसित किया गया है
  • यह Homebrew से प्रेरित है और Formulae तथा Casks को इंस्टॉल और मैनेज करता है
  • फिलहाल यह केवल ARM आर्किटेक्चर को सपोर्ट करता है, और x86 सपोर्ट बाद में जोड़ा जा सकता है
  • प्रोजेक्ट sapphire-core और sapphire-cli से मिलकर बना है
  • Sapphire BSD-3-Clause लाइसेंस का पालन करता है

चेतावनी

  • Sapphire एक प्रयोगात्मक सॉफ़्टवेयर है और इस पर सक्रिय रूप से काम चल रहा है, इसलिए यह अस्थिर हो सकता है
  • brew से इंस्टॉल किए गए cask को Sapphire से दोबारा इंस्टॉल करने पर वह थोड़े अलग path में इंस्टॉल होता है, और user settings अपने-आप migrate नहीं होतीं

⚙️ प्रोजेक्ट संरचना

  • sapphire-core: कोर लाइब्रेरी, जो पैकेज fetch करना, dependency resolve करना, archive extract करना और artifact process करना जैसे काम संभालती है
  • sapphire-cli: कमांड-लाइन इंटरफ़ेस, जहाँ sapphire executable कोर लाइब्रेरी को wrap करता है

🚀 रोडमैप

  1. इंस्टॉल किए गए पैकेजों को अपडेट करने के लिए upgrade कमांड
  2. पुराने downloads, versions और cache की सफ़ाई
  3. तेज़ पुनर्स्थापना के लिए Reinstall कमांड
  4. /opt/sapphire को स्वतंत्र layout के रूप में सपोर्ट करने वाला Prefix isolation
  5. environment को bootstrap करने के लिए sapphire init helper
  6. लगातार bug fixes और स्थिरता में सुधार

📦 उपयोग

  • हेल्प दिखाएँ: sapphire --help
  • metadata अपडेट करें: sapphire update
  • पैकेज खोजें: sapphire search
  • पैकेज जानकारी देखें: sapphire info
  • Bottle या Cask इंस्टॉल करें: sapphire install
  • source से Formula build और install करें: sapphire install --build-from-source
  • हटाएँ: sapphire uninstall
  • (जल्द आने वाला) sapphire upgrade [--all] , sapphire cleanup, sapphire init

🏗️ source से build करें

ज़रूरी शर्त: स्थिर Rust toolchain

  • git clone
  • cd sapphire
  • cargo build --release
  • sapphire binary target/release/sapphire में स्थित होगी, इसे PATH में जोड़ें

1 टिप्पणियां

 
GN⁺ 2025-04-23
Hacker News राय
  • उनका कहना है कि उनके बनाए प्रोजेक्ट में Homebrew से बेहतर बहुत कुछ नहीं है, लेकिन यह relative path configuration जैसी कुछ समस्याओं को हल कर रहा है

    • Rust को छोड़कर ज़्यादातर bottle इंस्टॉल अच्छी तरह काम करते हैं
    • source से build होने वाले formula, JSON API में जानकारी की कमी के कारण मुश्किल हैं
    • .rb स्क्रिप्ट्स को अधिक सामान्य machine-readable format में बदलने की योजना है
    • .dmg से .app में conversion और .pkg installer परीक्षणों के ज़रिए अच्छी तरह काम करते हैं
    • आधुनिक ARM Mac पर ज़्यादातर formula bottle के रूप में उपलब्ध हैं, इसलिए यह एक पूर्ण package manager बन सकता है
    • उन्हें लगा कि Ansible एक मशीन के लिए ज़रूरत से ज़्यादा है, इसलिए वे mac के लिए एक declarative package और system manager विकसित कर रहे हैं
    • Brew कमांड को wrap करना बहुत धीमा था, इसलिए उन्होंने नया प्रोजेक्ट शुरू किया
    • bug report, issues और रचनात्मक pull requests के लिए आभार व्यक्त किया
  • Homebrew के दो मुख्य हिस्सों के बारे में बताया गया

    • client side पर ज़्यादातर उपयोगकर्ता bottle installs और supported platforms का उपयोग करते हैं, जिन्हें एक छोटे native code installer से आसानी से support किया जा सकता है
    • developer, repository और CI/CD मशीनें Homebrew की जटिल infrastructure बनाती हैं, जो formula DSL से गहराई से जुड़ी हुई है
    • Homebrew client side को जटिल infrastructure से अच्छी तरह अलग रखता है
    • bottle और DMG की parallel download, Homebrew की architecture limitation नहीं बल्कि सेवा के प्रति शिष्टाचार के कारण चुनी गई है
  • प्रोजेक्ट को मज़ेदार और अच्छी तरह बनाया हुआ बताया गया

    • Homebrew की terminology बनाए रखने पर आलोचनात्मक रुख़ है
    • package और repository जैसे standard terms इस्तेमाल करना बेहतर होगा, ऐसा सुझाव दिया गया
  • Homebrew के बराबरी का लक्ष्य रखने पर सवाल उठाया गया

    • version pinning जैसी अतिरिक्त सुविधाएँ सुझाई गईं
  • वे पहले MacPorts उपयोगकर्ता थे, लेकिन Homebrew पर स्विच करने की वजह बताई

    • उनका मानना है कि नया package manager बनाना ज़रूरी नहीं कि बेहतर setup बनाए
  • README में goal, motivation और reason जोड़ने का सुझाव दिया गया

    • Homebrew की समस्याओं को हल करने की वजह को स्पष्ट करने की ज़रूरत है
  • Homebrew में सुधार की संभावना को स्वीकार करते हुए, नए प्रयास का स्वागत किया गया

    • Homebrew के developer और packager की मंशा और सोच के तरीके पर असंतोष व्यक्त किया गया
  • प्रोजेक्ट का नाम छोटा करने का सुझाव दिया गया

    • छोटा नाम ज़्यादा यादगार हो सकता है और हल्का एहसास दे सकता है
  • यह तर्क दिया गया कि सॉफ़्टवेयर को फिर से लिखना प्रभावी नहीं है

    • Homebrew के components को धीरे-धीरे बदलना बेहतर होगा, ऐसा सुझाव दिया गया
    • समझाया गया कि Homebrew नाम hacker समूहों में सांस्कृतिक रूप से महत्वपूर्ण है