परिचय: आपका कार्गो पुराना क्यों हो सकता है?
\n\nक्या आपने कभी cargo build चलाया और जवाब में एक अजीब त्रुटि मिली? या हो सकता है, Rust की वह नई सुविधा जिसका आप इंतज़ार कर रहे थे, बस काम नहीं करती? परिचित स्थिति: आप Stack Overflow खोलते हैं, समाधान ढूंढते हैं, और वहाँ कार्गो को अपडेट करने की सलाह दी जाती है। लेकिन यह कैसे करें? आखिरकार, Rust में cargo update --self कमांड नहीं है (और ईमानदारी से कहें तो, यह बहुत आसान होता)।
इस लेख में, हम हज़ारों व्यूज़ वाले एक वास्तविक प्रश्न को समझेंगे: "Is there a command to update Cargo to the latest official release?" हम केवल एक सूखा कमांड नहीं देंगे — हम समस्या से समाधान तक का पूरा सफर तय करेंगे, कोड उदाहरणों, हैक्स और सामान्य गलतियों के साथ। यदि आप कम से कम एक सप्ताह से Rust में लिख रहे हैं, तो यह जानकारी आपके घंटों की गूगलिंग बचाएगी।
\n\nचलिए शुरू करते हैं! 🚀
\n\nकार्गो क्या है और इसे अपडेट करना क्यों ज़रूरी है?
\n\nकार्गो केवल एक पैकेज मैनेजर नहीं है। यह Rust इकोसिस्टम का दिल है। यह बिल्ड, टेस्टिंग, क्रेट प्रकाशन और निश्चित रूप से, डिपेंडेंसी प्रबंधन के लिए जिम्मेदार है। कार्गो का हर नया रिलीज़ सुधार लाता है: तेज़ कंपाइलेशन, नए कमांड, सुरक्षा सुधार।
\n\nउदाहरण के लिए, कार्गो संस्करण 1.70 में cargo info के लिए अंतर्निहित समर्थन आया, और 1.75 में बेहतर त्रुटि आउटपुट। यदि आप पुराने संस्करण पर अटके हैं, तो आपको ये सुविधाएँ नहीं मिलतीं। इसके अलावा, कुछ क्रेट्स को ताज़ा कार्गो की आवश्यकता होने लगती है, और आपका प्रोजेक्ट बिल्ड होना बंद हो जाता है।
लेकिन एक बारीकी है: कार्गो अपने आप अपडेट नहीं होता। यह कंपाइलर rustc से जुड़ा है, और वह टूल Rustup से। इस संबंध को याद रखें: Rustup → rustc → Cargo। एक को अपडेट करने से सब कुछ अपडेट हो जाता है।
cargo update --self कमांड क्यों नहीं है?
\n\nयह Stack Overflow पर एक सामान्य प्रश्न है। बात यह है कि कार्गो एक अलग प्रोग्राम नहीं है, बल्कि Rust पैकेज का हिस्सा है। जब आप Rustup के माध्यम से Rust स्थापित करते हैं, तो आपको rustc, cargo और अन्य उपयोगिताएँ एक ही संस्करण में मिलती हैं। इसलिए cargo update कमांड मौजूद है, लेकिन यह आपके प्रोजेक्ट की डिपेंडेंसी को अपडेट करता है, न कि स्वयं कार्गो को।
यहाँ एक शुरुआती की सामान्य गलती है:
\n\n# यह कार्गो को अपडेट नहीं करेगा\ncargo update\n# यह केवल Cargo.lock में डिपेंडेंसी को अपडेट करेगा\n\n\nस्वयं कार्गो को अपडेट करने के लिए एक अलग दृष्टिकोण की आवश्यकता है। और यह सरल है — Rustup का उपयोग करें।
\n\nमुख्य तरीका: Rustup के माध्यम से अपडेट
\n\nRustup Rust का आधिकारिक इंस्टॉलर और वर्जन मैनेजर है। यदि आपने rustup.rs के माध्यम से Rust स्थापित किया है, तो आपके पास पहले से ही यह टूल है। यदि नहीं, तो इसे स्थापित करने का समय आ गया है:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n\n\nस्थापना के बाद, वर्तमान संस्करण जांचें:
\n\nrustc --version\ncargo --version\n\n\nअब, नवीनतम स्थिर रिलीज़ में सब कुछ अपडेट करने के लिए, एक कमांड चलाएँ:
\n\nrustup update\n\n\nयह कमांड rustc, cargo और सभी संबंधित टूल्स को नवीनतम स्थिर संस्करण में अपडेट करेगा। आउटपुट कुछ इस प्रकार होगा:
info: syncing channel updates for 'stable-x86_64-unknown-linux-gnu'\ninfo: latest update on 2024-01-25, rust version 1.75.0 (8e3999b4e 2024-01-25)\ninfo: downloading component 'cargo'\ninfo: installing component 'cargo'\n\n\nहो गया! अब आपका कार्गो नवीनतम संस्करण है।
\n\nअपडेट के बाद जांच
\n\nयह सुनिश्चित करना हमेशा उपयोगी होता है कि अपडेट सफल रहा। Rust में एक सरल प्रोग्राम लिखें और इसे बिल्ड करें:
\n\n// main.rs\nfn main() {\n println!("Cargo version: {}", env!("CARGO_PKG_VERSION"));\n \n // जांचें कि नई सुविधा काम कर रही है\n #[cfg(version_ge(1, 75))]\n println!("आप कार्गो 1.75+ का उपयोग कर रहे हैं!");\n}\n\n\nबिल्ड करें और चलाएँ:
\n\ncargo run\n\n\nयदि सब कुछ काम करता है, तो आप तैयार हैं। यदि नहीं, तो च