इस प्रोजेक्ट के बारे में
cargo-binstall Rust बाइनरी इंस्टॉल करने के लिए एक कम-जटिलता वाला तंत्र प्रदान करता है, जो `cargo install` से सोर्स बिल्ड करने या मैन्युअल रूप से पैकेज डाउनलोड करने का विकल्प है। इसे मौजूदा CI आर्टिफैक्ट और इंफ्रास्ट्रक्चर के साथ काम करने के लिए डिज़ाइन किया गया है, जिससे पैकेज मेंटेनरों पर न्यूनतम ओवरहेड पड़ता है।
यह कैसे काम करता है: Binstall crates.io से क्रेट जानकारी प्राप्त करता है, लिंक किए गए रिपॉजिटरी में मेल खाते रिलीज़ और आर्टिफैक्ट खोजता है, quickinstall थर्ड-पार्टी आर्टिफैक्ट होस्ट पर फॉलबैक करता है, समर्थित वैकल्पिक टारगेट आज़माता है, और अंतिम उपाय के रूप में `cargo install` पर फॉलबैक करता है।
उपयोग cargo install के समान है। उदाहरण के लिए, `cargo binstall radio-sx128x@0.14.1-alpha.5` पैकेज को रिज़ॉल्व करता है, GitHub से बाइनरी डाउनलोड करता है, इंस्टॉल की जाने वाली बाइनरी की सूची दिखाता है, और पुष्टि मांगता है। CI जैसे अनअटेंडेड उपयोग के लिए `--no-confirm` फ्लैग उपलब्ध है। अतिरिक्त विकल्प `cargo binstall --help` से देखे जा सकते हैं।
इंस्टॉलेशन विकल्पों में Linux और macOS के लिए वन-लाइन स्क्रिप्ट, Homebrew, Windows के लिए PowerShell वन-लाइनर, प्लेटफ़ॉर्म-विशिष्ट आर्काइव का मैन्युअल डाउनलोड (Linux x86_64/armv7/arm64, macOS Intel/Apple Silicon/Universal, Windows x86_64/aarch64), `cargo install cargo-binstall --locked` से सोर्स से बिल्ड करना, और फर्स्ट-पार्टी GitHub Action शामिल हैं। प्रोजेक्ट थर्ड-पार्टी taiki-e/install-action की भी सिफारिश करता है।
उल्लिखित सहयोगी टूल में cargo-update शामिल है, जो सभी टूल अपडेट करता है और Binstall मौजूद होने पर उसका उपयोग करता है, और cargo-run-bin, जो टूल को किसी प्रोजेक्ट तक सीमित रखता है और Cargo.toml में वर्जन नियंत्रित करता है।
असमर्थित क्रेट के लिए, उपयोगकर्ता कमांड लाइन पर मैन्युअल रूप से `pkg-url`, `bin-dir`, और `pkg-fmt` निर्दिष्ट कर सकते हैं। मेंटेनर किसी दिए गए वर्जन और टारगेट के लिए उपयुक्त बाइनरी पैकेज का पता लगाने हेतु Cargo.toml में स्पष्ट Binstall मेटाडेटा जोड़ सकते हैं।
सिग्नेचर: मेंटेनरों के लिए साइनिंग पब्लिक की और पैकेज सिग्नेचर कहाँ मिलेंगे, यह निर्दिष्ट करने का प्रारंभिक, सीमित समर्थन है। इसे सक्षम करने पर, Binstall सिग्नेचर डाउनलोड और सत्यापित करता है। `--only-signed` अनसाइन्ड पैकेज को अस्वीकार करता है, जबकि `--skip-signatures` सिग्नेचर की जाँच या डाउनलोड अक्षम कर देता है।
सुरक्षा नोट्स: मेटाडेटा crates.io से HTTPS पर लिया जाता है और क्रेट टार चेकसम सत्यापित किया जाता है; पैकेज फ़ाइल डाउनलोड के लिए TLS >= 1.2 के साथ HTTPS लागू किया जाता है। `curl | sh` स्क्रिप्ट के विपरीत, Binstall मनमाना कोड नहीं चलाता, हालाँकि इंस्टॉल किया जा रहा क्रेट स्वयं दुर्भावनापूर्ण हो सकता है।
टेलीमेट्री: कुछ इंस्टॉलेशन रणनीतियाँ डिफ़ॉल्ट रूप से अनाम उपयोग आँकड़े एकत्र कर सकती हैं। जब quickinstall आर्टिफैक्ट होस्ट का उपयोग किया जाता है, तो क्रेट नाम, वर्जन, टारगेट प्लेटफ़ॉर्म ट्रिपल, और यूज़र एजेंट cargo-quickinstall-stats-server URL के अंतर्गत एंडपॉइंट पर भेजे जाते हैं। एकत्रित डेटा सार्वजनिक रूप से सुलभ है। ऑप्ट-आउट तरीकों में `--disable-telemetry` फ्लैग, `BINSTALL_DISABLE_TELEMETRY` एनवायरनमेंट वेरिएबल, quickinstall रणनीति को अक्षम करना, या क्रेट मेटाडेटा में `disabled-strategies` कॉन्फ़िगरेशन की में `quick-install` जोड़ना शामिल है।
डीबग सिंबल: `.full` प्रत्यय वाले अतिरिक्त प्री-बिल्ट पैकेज में स्प्लिट डीबगइन्फो, डॉक्यूमेंटेशन फ़ाइलें, और `detect-wasi` यूटिलिटी जैसी अतिरिक्त बाइनरी शामिल होती हैं।
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.