تحديث Cargo إلى أحدث إصدار: دليل تعليمي لمطور Rust

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

مقدمة: لماذا قد يكون إصدار Cargo لديك قديماً؟



هل سبق لك أن قمت بتشغيل cargo build، وتلقيت خطأً غريباً؟ أو ربما ميزة Rust الجديدة التي كنت تنتظرها لا تعمل ببساطة؟ موقف مألوف: تفتح Stack Overflow، تبحث عن حل، وهناك ينصحونك بتحديث Cargo. ولكن كيف تفعل ذلك؟ ففي Rust لا يوجد أمر cargo update --self (وبصراحة، كان سيكون الأمر بسيطاً جداً).



في هذه المقالة، سنحلل سؤالاً حقيقياً بآلاف المشاهدات: "هل يوجد أمر لتحديث Cargo إلى أحدث إصدار رسمي؟". لن نعطيك أمراً جافاً فقط - بل سنسير معك من المشكلة إلى حلها، مع أمثلة كود، وحيل، وأخطاء شائعة. إذا كنت تكتب بلغة Rust لمدة أسبوع على الأقل، ستوفر لك هذه المعلومات ساعات من البحث.



هيا بنا! 🚀



ما هو Cargo ولماذا يجب تحديثه؟



Cargo ليس مجرد مدير حزم. إنه قلب نظام Rust البيئي. فهو مسؤول عن البناء، والاختبار، ونشر الكريتات، وبالطبع إدارة التبعيات. كل إصدار جديد من Cargo يجلب تحسينات: تجميع أسرع، أوامر جديدة، إصلاحات أمنية.



على سبيل المثال، في الإصدار Cargo 1.70 ظهر دعم مدمج لـ cargo info، وفي الإصدار 1.75 تحسن عرض الأخطاء. إذا كنت عالقاً في إصدار قديم، فأنت ببساطة لا تحصل على هذه الميزات. علاوة على ذلك، تبدأ بعض الكريتات في طلب إصدار Cargo حديث، وقد يتوقف مشروعك عن البناء.



لكن هناك فارق بسيط: Cargo لا يتم تحديثه من تلقاء نفسه. إنه مرتبط بالمترجم rustc، والذي بدوره مرتبط بأداة Rustup. تذكر هذه العلاقة: Rustup → rustc → Cargo. بتحديث واحد، تقوم بتحديث الكل.



لماذا لا يوجد أمر cargo update --self؟



هذا سؤال شائع على Stack Overflow. السبب هو أن Cargo ليس برنامجاً منفصلاً، بل جزء من حزمة Rust. عندما تقوم بتثبيت Rust عبر Rustup، تحصل على rustc و cargo وأدوات أخرى بنفس الإصدار. لذلك، الأمر cargo update موجود، لكنه يقوم بتحديث تبعيات مشروعك، وليس Cargo نفسه.



إليك خطأ شائع للمبتدئين:



# هذا لن يقوم بتحديث Cargocargo update# هذا سيحدث فقط التبعيات في Cargo.lock


لتحديث Cargo نفسه، تحتاج إلى نهج مختلف. وهو بسيط - استخدم Rustup.



الطريقة الأساسية: التحديث عبر Rustup



Rustup هو المثبت الرسمي ومدير إصدارات Rust. إذا قمت بتثبيت Rust عبر rustup.rs، فلديك هذه الأداة بالفعل. إذا لم يكن الأمر كذلك، فقد حان الوقت لتثبيتها:



curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh


بعد التثبيت، تحقق من الإصدار الحالي:



rustc --versioncargo --version


الآن، لتحديث كل شيء إلى أحدث إصدار مستقر، نفذ أمراً واحداً:



rustup update


سيقوم هذا الأمر بتحديث rustc و cargo وجميع الأدوات المرتبطة إلى أحدث إصدار مستقر. سيكون الناتج مشابهاً لهذا:



info: syncing channel updates for 'stable-x86_64-unknown-linux-gnu'info: latest update on 2024-01-25, rust version 1.75.0 (8e3999b4e 2024-01-25)info: downloading component 'cargo'info: installing component 'cargo'


تم! الآن إصدار Cargo لديك هو الأحدث.



التحقق بعد التحديث



من المفيد دائماً التأكد من نجاح التحديث. اكتب برنامجاً بسيطاً بلغة Rust وقم ببنائه:



// main.rsfn main() {    println!("Cargo version: {}", env!("CARGO_PKG_VERSION"));        // نتحقق من أن الميزة الجديدة تعمل    #[cfg(version_ge(1, 75))]    println!("أنت تستخدم Cargo 1.75+!");}


قم ببنائه وتشغيله:



cargo run


إذا كان كل شيء يعمل، فأنت في اللعبة. إذا لم يكن كذلك، فـ

المدونات

توصيات الكتب