منصوبے کے بارے میں

cargo-binstall Rust بائنریز کو انسٹال کرنے کے لیے ایک کم پیچیدگی کا طریقہ فراہم کرتا ہے، بطور متبادل `cargo install` کے ذریعے سورس سے بنانے یا دستی طور پر پیکجز ڈاؤن لوڈ کرنے کے۔ یہ موجودہ CI آرٹیفیکٹس اور انفراسٹرکچر کے ساتھ کم سے کم اضافی بوجھ کے ساتھ کام کرنے کے لیے ڈیزائن کیا گیا ہے۔ یہ کیسے کام کرتا ہے: Binstall crates.io سے crate کی معلومات حاصل کرتا ہے، منسلک ریپوزٹری میں مماثل ریلیزز اور آرٹیفیکٹس تلاش کرتا ہے، 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 میں ورژنز کو کنٹرول کرتا ہے۔ غیر معاون crates کے لیے، صارفین کمانڈ لائن پر `pkg-url`، `bin-dir`، اور `pkg-fmt` دستی طور پر متعین کر سکتے ہیں۔ مینٹینرز Cargo.toml میں واضح Binstall میٹا ڈیٹا شامل کر سکتے ہیں تاکہ دیے گئے ورژن اور ٹارگٹ کے لیے مناسب بائنری پیکج تلاش کیا جا سکے۔ دستخط: مینٹینرز کے لیے ابتدائی، محدود سپورٹ موجود ہے کہ وہ دستخطی پبلک کی اور پیکج کے دستخط کہاں تلاش کرنے ہیں متعین کر سکیں۔ اس کے فعال ہونے پر، Binstall دستخط ڈاؤن لوڈ اور تصدیق کرتا ہے۔ `--only-signed` غیر دستخط شدہ پیکجز سے انکار کرتا ہے، جبکہ `--skip-signatures` دستخط کی جانچ یا ڈاؤن لوڈ کو غیر فعال کرتا ہے۔ سیکیورٹی نوٹس: میٹا ڈیٹا crates.io سے HTTPS کے ذریعے حاصل کیا جاتا ہے اور crate tar چیک سم کی تصدیق ہوتی ہے؛ پیکج فائل ڈاؤن لوڈز کے لیے TLS >= 1.2 کے ساتھ HTTPS لازمی ہے۔ `curl | sh` اسکرپٹ کے برعکس، Binstall صوابدیدی کوڈ نہیں چلاتا، تاہم انسٹال ہونے والا crate خود نقصان دہ ہو سکتا ہے۔ ٹیلی میٹری: کچھ انسٹالیشن حکمت عملیاں بطور ڈیفالٹ گمنام استعمال کے اعداد و شمار جمع کر سکتی ہیں۔ جب quickinstall آرٹیفیکٹ ہوسٹ استعمال ہوتا ہے، تو crate کا نام، ورژن، ٹارگٹ پلیٹ فارم ٹرپل، اور یوزر ایجنٹ cargo-quickinstall-stats-server URL کے تحت اینڈ پوائنٹس کو بھیجے جاتے ہیں۔ مجموعی ڈیٹا عوامی طور پر قابل رسائی ہے۔ آپٹ آؤٹ کے طریقوں میں `--disable-telemetry` فلیگ، `BINSTALL_DISABLE_TELEMETRY` ماحول متغیر، quickinstall حکمت عملی کو غیر فعال کرنا، یا crate میٹا ڈیٹا میں `disabled-strategies` کنفیگریشن کلید میں `quick-install` شامل کرنا شامل ہے۔ ڈیبگ سمبلز: `.full` لاحقے کے ساتھ اضافی پہلے سے تیار شدہ پیکجز میں تقسیم شدہ ڈیبگ انفو، دستاویزی فائلیں، اور اضافی بائنریز جیسے `detect-wasi` یوٹیلیٹی شامل ہیں۔