مقدمة: الألم المألوف لكل مبتدئ في Rust
\n\nلقد قمت للتو بتثبيت Rust، باتباع التعليمات من الموقع الرسمي، وتفتح الطرفية (Terminal) وتدخل بقلب خافق rustc --version. وفجأة! بدلاً من سطر جميل برقم الإصدار، ترى نصاً بارداً ومخيفاً: «No default toolchain configured after installing rustup».
هل هذا مألوف؟ إذا كان الأمر كذلك، فأنت لست وحدك. هذا السؤال على Stack Overflow حصد آلاف المشاهدات وعشرات التعليقات. لكن لا تتسرع في الذعر وحذف كل شيء. في هذه المقالة، سنشرح ما هو toolchain، ولماذا لا يستطيع rustup العثور عليه، والأهم من ذلك، كيفية إصلاح هذا الخطأ مرة واحدة وإلى الأبد. سنقطع الطريق من الصفر التام إلى بيئة تطوير Rust عاملة.
\n\nهل أنت مستعد؟ هيا بنا!
\n\nما هو toolchain ولماذا rustup «ينساه»؟
\n\nقبل أن نتعمق في التفاصيل، دعنا نفهم المفاهيم. Toolchain (سلسلة الأدوات) هي مجموعة من الأدوات اللازمة لتجميع وبناء كود Rust. تتضمن:
\n\n- \n
rustc— المترجم نفسه؛ \n cargo— مدير الحزم ونظام البناء؛ \n rust-std— المكتبة القياسية؛ \n - ومكونات أخرى (مثل
clippyللتدقيق اللغوي). \n
Rustup هو المثبت الرسمي ومدير إصدارات Rust. يتيح لك التبديل بين إصدارات مختلفة من المترجم: المستقر (stable)، الليلي (nightly)، والإصدار التجريبي (beta). عندما تدخل rustup install stable، يقوم rustup بتنزيل toolchain المناسب وحفظه على القرص.
يظهر خطأ «No default toolchain configured» عندما لا يستطيع rustup تحديد إصدار toolchain الذي يجب استخدامه افتراضياً. هذا يشبه الموقف عندما تذهب إلى مكتبة ولا تعرف أي كتاب تقرأ أولاً. rustup ببساطة لا يعرف أي مترجم يجب تشغيله.
\n\nالأسباب قد تكون مختلفة:
\n- \n
- لقد قمت للتو بتثبيت rustup ولكنك لم تقم بتثبيت أي toolchain؛
- انقطع التثبيت بسبب مشاكل في الشبكة؛
- قمت بحذف toolchain يدوياً؛
- مشاكل في صلاحيات الوصول إلى المجلد
~/.rustup.
التشخيص: التحقق من الحالة الحالية
\n\nقبل إصلاح أي شيء، دعنا نرى ما لدينا. افتح الطرفية (Terminal) ونفذ الأمر:
\n\nrustup show\n\nيجب أن ترى شيئاً كهذا (إذا كان كل شيء سيئاً):
\n\nDefault host: x86_64-unknown-linux-gnu\nrustup home: /home/user/.rustup\n\ninstalled toolchains\n--------------------\n\nactive toolchain\n----------------\n(no active toolchain)\n\nلاحظ السطر «no active toolchain». هذا هو جذر المشكلة. دعنا نصلحه.
\n\nالحل رقم 1: تثبيت وإعداد toolchain الافتراضي
\n\nأبسط وأكثر الطرق شيوعاً هو تثبيت toolchain المستقر بشكل صريح وتعيينه كإصدار افتراضي.
\n\nنفذ في الطرفية (Terminal):
\n\nrustup install stable\n\nسيقوم هذا الأمر بتنزيل وتثبيت أحدث إصدار مستقر من Rust. قد تستغرق العملية بعض الوقت (عادةً 1-3 دقائق، حسب سرعة الإنترنت).
\n\nبعد اكتمال التثبيت، تحتاج إلى «ربط» هذا toolchain كإصدار افتراضي:
\n\nrustup default stable\n\nالآن تحقق من النتيجة:
\n\nrustup show\n\nيجب أن ترى toolchain نشطاً. يمكنك أيضاً التحقق من المترجم:
\n\nrustc --version\n\nإذا رأيت شيئاً مثل rustc 1.78.0 (9b00956e5 2024-04-29) — تهانينا، تم حل المشكلة!
الحل رقم 2: استخدام nightly toolchain (للمجربين)
\n\nفي بعض الأحيان قد تحتاج إلى الإصدار الليلي من المترجم، على سبيل المثال لـ